情報科学屋さんを目指す人のメモ(FC2ブログ版)

何かのやり方や、問題の解決方法をどんどんメモするブログ。そんな大学院生の活動「キャッシュ」に誰かがヒットしてくれることを祈って。

ブログ内検索

スポンサーサイト このエントリーを含むはてなブックマーク

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサー広告 | 編集
このエントリーをはてなブックマークに追加 Clip to Evernote

GitインストールからEclipse (EGit)からのCommit / Pushまでメモ このエントリーを含むはてなブックマーク

概要

Gitインストール→サーバ側のレポジトリ作成→EGitインストール→既存プロジェクトをローカルのGitレポジトリに→Addしてローカルにコミット→サーバ側のレポジトリに(公開鍵を利用した)ssh越しにPush

基本的にはEgitのUser's Guide(英語)がベースになっています。

前提

サーバ側はUbuntu 10.04.1 、作業するPCはWindows 7 64bit、使用したEclipseのバージョンははHelios。サーバには公開鍵を利用したSSH接続が"user01"というアカウントから利用できるものとします。

Gitインストール

$ sudo apt-get install git-core

これだけでインストール完了ちなみにインストールされたのは「git-core」「libdigest-sha1-perl」「liberror-perl」

空のレポジトリを作成

空のレポジトリを作成。ここでは、仮にプロジェクト名を「project01」としてやってみます。

$ mkdir project01.git
$ cd git
$ git init --bare
Initialized empty Git repository in /path-to/project01.git/

基本はこれで完了。「--bare」オプションが無い場合は「.git」ディレクトリが「project01.git」ディレクトリ以下に作成されます。--bareを使うことが割と多そうなのでこっち

EGitインストール

EGitは、Eclipse用のGitクライアントです。実はEclipseの最新版にははじめからインストールされており、わざわざインストール作業を行う必要はありません古いバージョンのEclipseにインストールしたい場合はこちら→「EGitのアップデートサイト

EGitでSSHを使う準備

第一のポイントは、秘密鍵ファイル「id_rsa」の設置場所です。Linuxだったら「~/.ssh」ディレクトリに設置すればいいのですが、Windowsの場合は「C:\Users\(ユーザ名)\ssh」フォルダに設置します。 これについては「EclipseのEGitプラグインのSSHデータはどこに?」 に書かれていますが、Eclipseの「Window>Preferences>General>Network Connections>SSH2」の「General」タブで設定可能で、デフォルトで「C:\Users\(ユーザ名)\ssh」フォルダが指定されているだけです。

ローカルレポジトリへのCommit

Gitでバージョン管理したいプロジェクトを右クリックすると、Teamという項目が見つかります。ここを重点的に利用していきます。まず「Team>Share Project」を選択します。次の画面で「Git」を選択して「Next」。次の画面で「Create Repository」をクリックして「Finish」を押します。これで、ローカル用のレポジトリが作成されました。

続いて、「Team>Add」を選択します。すると、プロジェクト内にあったファイルがすべてGitによるバージョン管理の対象になります。

最後に「Team>Commit」を選択します。表示された画面にCommit Messageを入力してCommitをクリックします。これでローカルレポジトリに対するコミットが完了しました。

GitサーバへのPush

続いてPushです。同じように「Team>Push」を選択します。そして、レポジトリに関する情報を入力します。ここでは、URI

ssh://(SSHログインを行うユーザ名)@(サーバのホスト名):(ポート番号、普通22)/(レポジトリまでのフルパス)/project01.git

URIの蘭に全部入力してしまえば、それ以外の場所は勝手に入力されます。入力したらNextを押します。次の画面で「Add all branches spec」を押して「Next」をクリックしてPushが行われます。

エラーが出たときは

Push時に次のようなエラーが表示された場合は、

Repository ...

branch is currently checked out
error: refusing to update checked out branch: refs/heads/master
error: By default, updating the current branch in a non-bare repository
error: is denied, because it will make the index and work tree inconsistent
error: with what you pushed, and will require 'git reset --hard' to match
error: the work tree to HEAD.
error:
error: You can set 'receive.denyCurrentBranch' configuration variable to
error: 'ignore' or 'warn' in the remote repository to allow pushing into
error: its current branch; however, this is not recommended unless you
error: arranged to update its work tree to match what you pushed in some
error: other way.
error:
error: To squelch this message and still keep the default behaviour, set

error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.

レポジトリの指定がおかしいと考えられます。git init --bareでレポジトリを作成した場合はproject01.gitをレポジトリのURIに指定し、git initでレポジトリを作成した場合は.gitディレクトリをレポジトリのURIに指定しないとこのエラーが発生するようです。

まとめ

使い始めたばかりだけど、また同じことを何度もやりそうなのでメモって置いた程度。

入門git
入門Git
実用Git

ソフトウェア | コメント:0 | トラックバック:0 | 編集
このエントリーをはてなブックマークに追加 Clip to Evernote

この記事のコメント

コメントの投稿 エントリの新旧に関わらず、極力18時間中に返信します。














この記事のトラックバック

トラックバックURL:
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。