S-JIS[2012-02-25/2012-04-15] 変更履歴

EGit

EGitは、GitEclipseで扱うためのプラグイン。


EGitのインストール

たぶん、Pleiades All in One Eclipseを使っていれば、自動的に入っている。
(Eclipse3.7にはEGit1.1.0が入っているっぽい)

Windowsで使う場合は、環境変数HOMEを定義しておかないと、ホームディレクトリーの確認ダイアログが出る。
HOMEを定義する場合、内容はUSERPROFILEと同じく「C:\Users\hishidama」(Windows7の場合)に するか、Cygwinを使っているなら「D:\cygwin/home/hishidama」にしておくとよいと思う。[/2012-03-04]
(HOMEを書き換えるとCygwinのホームディレクトリーもそれに応じて変わってしまう為)

EGitを初めて使う際にknown_hosts設定関連のダイアログが出てくるが、全部デフォルトで大丈夫っぽい。


設定を見てみたら、ユーザー名やメールアドレスが入っていた。以前設定したのを忘れてるのか(爆)、gitコマンドで登録したものが自動的に読み込まれているのか?

  1. メニューバーの「ウィンドウ(W)」→「設定(P)」で設定ダイアログを開く。
  2. 左側のツリーから「チーム」⇒「Git」⇒「構成」
  3. 右側のタブで「ユーザー設定(U)」
  4. 以下の値が設定されていた。
    キー 備考(昔こんな登録をした)
    user.name hishidama git config --global user.name "hishidama"
    user.email メールアドレス git config --global user.email "メールアドレス"

Windows用のSSHの設定

EGitを使ってGitHubにアクセスする為に、SSHの設定が必要になる。[2012-03-04]

Cygwin上でssh-keygenコマンドを使ってSSHの鍵を作った場合、「D:\cygwin\home\hishidama\.ssh」の下にid_rsaやid_rsa.pubといったファイルが作られているはず。
この鍵がそのまま使える場合は環境変数HOMEは「D:\cygwin\home\hishidama」にしておけばいい。
というのは、現状では、パスフレーズありの鍵だと上手く動作しない(パスワードを入れても認証がはじかれる)為。
(Eclipse3.7のSSH2はAESに対応していない為らしい。→ang65さんのEclipseのEGitで既存のSSHのprivate keyが使えないときの解決策、eclipse BUGSのBug 326526 - egit does not accept ssh private key password

という訳で、解決策としては、パスフレーズ無しの鍵にしておくか、AESを使わない鍵を使うか。


パスフレーズ無しの鍵を使う場合

Cygwinのssh-keygenでパスフレーズ無しの鍵を作った場合は、その鍵がそのまま使える為、環境変数HOMEはCygwinユーザーのホームディレクトリーにしておけばよい。
例:「D:\cygwin/home/hishidama


パスフレーズ有りの鍵を使う場合

Eclipse上でパスフレーズ有りの鍵を作って、それをGitHubに登録する。

  1. 環境変数HOMEはCygwinのホームディレクトリーとは別の場所にしておく。
    例:「C:\Users\hishidama
  2. Eclipse上でSSHの鍵を生成する。
    1. メニューバーの「ウィンドウ(W)」→「設定(P)」で設定ダイアログを開く。
    2. 左側のツリーで「一般」⇒「ネットワーク接続」⇒「SSH2」を選ぶ。
    3. 右側のタブ(SSH2の構成オプション)で「鍵管理(K)」を選ぶ。
    4. 「RSA鍵の生成(N)」ボタンを押す。
      すると、公開鍵が表示されるので、コピーしておく。
    5. (パスフレーズ(パスワード)を使う場合は、)「パスフレーズ(H)」と「パスフレーズの確認(O)」にパスワードを入力する。
    6. 「秘密鍵の保存」ボタンを押す。
      すると、id_rsaやid_rsa.pubが作られる。
      作られる場所は、SSH2の構成オプションタブの「一般(G)」の「SSH2ホーム(H)」で指定できる。(そのディレクトリーが存在しなければ、ファイルを作る際にディレクトリーも作られる)
  3. GitHubに鍵を追加する。
    GitHubの「SSH Keys」で、上記で表示された公開鍵の内容を貼り付ける。

GitHubからのインポート

GitHub上に置かれたEclipseのプロジェクトをインポートする方法。

  1. メニューバーの「ファイル(F)」→「インポート(I)」でインポートダイアログを開く。
  2. 「インポート・ソースの選択(S)」で「Git」⇒「Gitからプロジェクト」を選び、次へ。
  3. 「Gitリポジトリーの選択」で「クローン(C)」ボタンを押す。
    1. ロケーションの「URI(I)」に、GitHubのURIを入力する。例:「git@github.com:hishidama/sandbox.git
      (すると、ホストやリポジトリーパス、ユーザーなどは自動的に値が入る。GitHubの場合、ユーザーは常に「git」になる)
    2. 接続の「プロトコル(L)」は何も指定しない。(またはsshを指定する。)[/2012-03-04]
    3. 次へ。
    4. 通信・認証が成功すれば、ブランチ(masterとか)の一覧が表示される。
      とりあえず「master」にチェックを入れて、次へ。
    5. 宛先の「ディレクトリー(D)」を、Eclipseのワークスペースとプロジェクト名にする。例:「D:\workspace\sandbox
      初期ブランチは「master」、リモート名は「origin」のままで良い。
    6. 次へ行くとGerritの構成画面になるが、よく分からないので、特に何も設定せず「完了」
  4. 次へ。
  5. プロジェクトをインポートするためのウィザードで、「既存プロジェクトのインポート(E)」を選択して次へ。
  6. 「完了」

クローンを作った時点でワークスペース内にディレクトリーが作られてGitHubからファイルが読み込まれる。
そこで一旦キャンセルして、普通に既存プロジェクトとしてインポートしても出来る。

※GitHubとの関係上、ファイル(Eclipseのプロジェクト)のエンコードはUTF-8にしておくのが無難だと思う。


プッシュ・プル

パッケージエクスプローラーから対象プロジェクトを右クリックし、ポップアップメニューの「チーム」→「アップストリームからフェッチ」「アップストリームへプッシュ」「プル」辺りを選ぶと、git fetch/push/pullが出来る。[/2012-03-04]


新規プロジェクトの作成方法

Eclipse上で新規プロジェクトを作り、GitHubと連動させる方法。[2012-04-15]

おおまかな手順は以下の様になる。

  1. Eclipse上で新規プロジェクトを作る。
  2. ローカルマシン上にGitリポジトリーを作る。
  3. GitHubと連動させる。

Eclipseのワークスペースをローカルリポジトリー扱いにして、直接GitHubとつなげればいいと思うんだけど、そういう構成にはなっていないようだ。

詳細は以下のような手順。

  1. Eclipse上で新規プロジェクトを作り、ソースファイルをいくつか作成する。
  2. ローカルマシン上にGitリポジトリーを作る。
    1. パッケージエクスプローラーからプロジェクトを右クリックして「チーム(E)」→「プロジェクトの共用(S)」
    2. リポジトリー・タイプでGitを選択して「次へ」
    3. 「リポジトリー(R)」の右の方にある「作成」ボタンを押下
    4. リポジトリーを作成する場所を指定する。
      親ディレクトリー(D) D:\cygwin\home\hishidama\git
      名前(N) sample
      これで「D:\cygwin\home\hishidama\git\sample」というディレクトリーが作られ、その下にプロジェクトが管理(コピー)される。
    5. 「完了」
  3. ローカルのGitリポジトリーにコミットする。
    1. classesとか.cacheとかのバージョン管理不要なディレクトリー・ファイルを.gitignoreに追加する。
      1. パッケージエクスプローラーやナビゲーターから管理不要にするものを右クリック→「チーム(E)」→「無視(I)」
    2. 管理対象を追加する。
      1. パッケージエクスプローラーから管理対象(ディレクトリー)を右クリック→「チーム(E)」→「追加(A)」
      2. 同じく「チーム(E)」→「コミット(C)」
  4. GitHubに新しいリポジトリーを作る。
  5. GitHubと連動させる。
    1. パッケージエクスプローラーからプロジェクトを右クリックして「チーム(E)」→「リモート(E)」→「プッシュ(P)」
    2. ロケーションの「URI(I)」にGitHubのURLを入れる。
      他の欄は自動的に入るので入力不要。以下の状態になる。
      URI(I) git@github.com:hishidama/sample.git
      ホスト(H) github.com
      リポジトリー・パス(R) hishidama/sample.git
      ユーザー git
      (その他) 空欄
    3. 「次へ」
    4. 「ソース参照」で「master[ブランチ]」を選ぶ。
      すると、「ソース参照」と「宛先参照」が「refs/heads/master」になるので、その右側の「Add Spec」ボタンを押す。
      下方の「Specifications for プッシュ」に新たな行が追加され、「次へ」ボタンが押せるようになる。
    5. 「完了」

参考: hybitzさんのEgitでGitHubにアクセスする


GitHubへ戻る / Git目次へ戻る / 技術メモへ戻る
メールの送信先:ひしだま