アットウィキロゴ

Eclipse tips

Eclipse tips


egitでssh経由でリモートレポジトリへpush

登場人物

下記を想定(全部macなのはたまたま試した環境がそうだっただけ):
  • ローカル1(いわゆるアリス)
    • Mac OS X 10.5
  • ローカル2(いわゆるボブ)
    • Mac OS X 10.7
  • リモートサーバ
    • Mac OS X 10.6

シナリオ

  1. 環境設定
  2. アリスがローカルでプロジェクト作成gitレポジトリにコミット
  3. リモートにgitレポジトリ作成
  4. アリスがリモートのgitレポジトリにpush
  5. ボブがリモートのgitレポジトリからローカルへpull

手順

  1. 環境設定
    1. アリス、ボブはリモートに公開鍵によるssh接続が出来るようにしておく
    2. アリス、ボブのEclipseにはegitをインストールしておく
  2. アリスがローカルでプロジェクト作成gitレポジトリにコミット
    1. [Share Project]->[Git]で"Configure Git Repository"ダイアログを表示する
    2. ここでは、新規にローカルレポジトリを作成するため、[Create]をクリック
      • "Parent directory"はデフォルトのまま((ユーザホーム)/gitのはず)でよい
      • "Name"欄に適当なレポジトリ名(ここでは"sandbox"とする)を入力して[Finish]クリックで"Configure Git Repository"ダイアログへ戻る
    3. [Finish]をクリックするとローカルレポジトリが作成される
    4. プロジェクトを右クリックし[Team]->[Commit]を選択
      • 適当なコミットコメントを入力し[Commit]をクリックするとローカルレポジトリへコミットされる
  3. リモートにgitレポジトリ作成
    1. リモートマシンにssh等でログインする
    2. gitレポジトリ用のディレクトリを作成(ここでは/var/git/sandoboxとする)
      • $mkdir -p /var/git/sandbox
    3. gitレポジトリの初期化
      • $ cd /var/git/sanbox
      • $ git --bare init
  4. アリスがリモートのgitレポジトリにpush
    1. プロジェクトを右クリック->[Team]->[Remote]->[Push]で"Push to Another Repository]ダイアログが表示される
      • "Host"にリモートマシンのホスト名(またはIPアドレス)を入力
      • "Repository Path"にリモート側のgitレポジトリパス(絶対パス)を入力(ここでは/var/git/sandbox)
      • "Protocol"にsshを選択
      • User, Passwordにアリスのsshユーザ名、パスワードを入力
    2. [Next]をクリックすると"Push Ref Specification"のダイアログが表示される
      • "Soureces ref"で"master[branch]を選択し、[Add Spec]をクリックし、[OK]をクリック
  5. ボブがリモートのgitレポジトリからローカルへpull
    1. [Window]->[Show View]->[Others]->[Git Repositories]を選択
    2. [Clone a git repository and the clone to this view](青い矢印のアイコン)をクリック
    3. pushしたときと同様に接続先のgitレポジトリを設定するダイアログが表示されるので、同様に内容を入力し[Next]をクリック
      • アリスの場合と異なるのはssh接続情報がボブのものになるところだけ
    4. "Branch Selection"でどのブランチをcloneとするのか選択すし(ここではmasterでよい)、[Finish]をクリック
    5. [FIle]->[Impor]->[Projcts from Git]を選択し[Next]をクリック
    6. cloneを作成したレポジトリ(ここではsandbox)を選択し[Finish]をクリック

ハマったところ

  • EclipseでのSSH2接続の確立
    • egitでsshプロトコルを利用するには、基本的に公開鍵認証を設定する必要あり.
    • sshの設定はegitではなく、eclipseそのものが持っているので注意!
      • [Prefrences]->[General]->[Network Connections]->[SSH2]で設定する

参考URL

最終更新:2012年01月02日 20:39