JavaのWebアプリケーション開発フレームワークによる、Webサイト開発の顛末記です。

EclipseのMavenを使った、Spring-MVC、Thymeleaf、MyBatis 等のプログラミングテクニックを、
備忘録的に記録しています。実際に動くソースコードを多用して説明していますので、
これからEclipseや、Spring-MVCを始めたいと思っている人にとって、少しでも参考になれば幸いです。
■あぜ道 Eclipseの小技
git共有リポジトリの作成と接続
今回は、Git共有リポジトリ(リモートリポジトリ)のお話です。
前回お話ししたEclipse Gitローカルリポジトリを、リモートサーバー上で
複数のメンバーで共有するための設定について説明して行きます。
まず、リモートサーバー上の共有リポジトリであることから
あらかじめ、リモートサーバー上にリポジトリが存在する必要があります。
ここでは、Linuxサーバー上に共有リポジトリを作成するという前提で説明します。

■リモートリポジトリの作成
Linuxサーバーの任意の場所に共有リポジトリを作成します。

ここでは、/home/pub/git というディレクトリを共有リポジトリのrootとします。
1)Linuxのroot権限で、ディレクトリを作成します。
  [root@ews001 home]#mkdir -p pub/git
2)誰でも読み書きができるようにディレクトリのパーミッションを変更します。
  [root@ews001 home]#chmod -R 777 pub
ここまでは、Git共有リポジトリの共通設定です。

ここから、プロジェクトごとの個別設定となります。
3)/home/pub/git配下に移動します。
  [root@ews001 home]#cd pub/git
4)個別の共有リポジトリを作成します。ここでは 共有リポジトリを「jLabo.git」とします。
  [root@ews001 git]#mkdir jLabo.git
5)作成した共有ディレクトリに移動します。
  [root@ews001 git]#cd jLabo.git
6)共有リポジトリを初期化します。
  [root@ews001 jLabo.git]#git --bare init --share

以上で、リモートサーバー側の共有リポジトリの準備は完了です。

 

■Eclipseリモートリポジトリの設定
続いて、Eclipse側でローカルリポジトリをリモートリポジトリに接続する手順を説明します。
Ecliseのビューで、Gitリポジトリビューが必要なためビューの追加を行います。
「ウィンドウ」-「ビューの表示」-「その他」を選択します。
ビューの追加

 

「ビューの表示」サブウィンドウが表示されるので、
リスト中の「Git」の「Gitリポジトリー」を選択して「OK」ボタンをクリックします。
Gitリポジトリビューの選択

 

Eclipseに「Gitリポジトリ」ビューが追加されるので、
これをどこか好きな場所に配置します。
ここでは、「ナビゲータ」ビューの隣に置いてみました。
ビューの内部には、前回すでに作成してある、Gitローカルリポジトリの内容が表示されています。
Gitリポジトリ

 

ビューの中の、「リモート」を選択し、マウス右ボタンをクリックするとメニューが表示されます。
メニューの中の「リモートの作成」を選択します。
リモートの作成

 

■プッシュ構成の作成
「新規リモート」のサブウィンドウが開きます。
リモート名はデフォルトで、「origin」となっているはずなので、ここはこのままとします。
下の、ラジオボタンで「プッシュ構成」をチェックし「OK」ボタンをクリックします。
※)「フェッチ構成」も設定しますが、これはまた後で。
新規リモートプッシュ構成

 

「プッシュ構成」のサブウィンドウが開きます。
中身は空っぽなので、「変更」ボタンをクリックします。
リモート'orogin'のプッシュ構成

 

「宛先Gitリポジトリー」のサブウィンドウが開きます。
URLに、ssh://user@host:22リモートリポジトリパスを入力します。
user:リモートサーバーのログインアカウント
host:リモートサーバーのホスト名(ドメイン名)
リモートリポジトリパス:ここでは、リモートサーバー側で設定した /home/pub/git/jLabo.git です。
通常は、OpenSSH(22番port)で接続するはずですが、port番号が22番以外の場合は、上の22 を書き換えてください。
宛先Gitリポジトリ
URLが正しく設定された場合は、下のホスト/リポジトリパス/プロトコル/ユーザー 欄は自動的に設定されます。
ユーザーに対する、アカウントパスワードを入力し、
「セキュアストアに保管」をチェックして、「完了」ボタンをクリックします。

 

「プッシュ構成」のサブウィンドウに戻ると、
URL欄には今設定した内容が入っています。

 

■参照マッピングの設定
「追加」ボタンをクリックします。
参照マッピングの追加

 

「プッシュ参照使用の作成または編集」のサブウィンドウが開きます。
この内容を編集します。
プッシュ参照使用の作成または編集

 

ローカルブランチに「master」と入力すると、プルダウンメニューみたいなものが表示されるので、
この状態でEnterキーを押します。
※)タイミング的にプルダウンメニューが表示されないような場合もありますが問題はありません。
ローカルブランチの編集

 

ローカルブランチでEnterキーを押すと、ローカルブランチの内容が「refs/heads/master」に自動的に変更されます。
もし、上でプルダウンメニューが表示されないような場合は、ここで直接
ローカルブランチに「refs/heads/master」を入力してください
ローカルブランチの編集

 

下の、リモートブランチにも、ローカルブランチと同じ文字列を設定します。(Copy & Paste)
ローカルブランチ/リモートブランチが入力完了すると、下の「指定」欄には自動的に文字列が設定されます。
ここで、「OK」ボタンをクリックします。
リモートブランチの編集

 

再び「プッシュ構成」のサブウィンドウに戻ると、
参照マッピングに、今設定した内容が表示されています。
ここで「保管」ボタンをクリックします。
プッシュ構成の保管

 

「Gitリポジトリー」ビューに戻ります。
「リモート」の下に、「origin」が追加され、上り(push)と下り(fetch)のノードが表示されています。
リモートの追加
プッシュの構成(上り)は完了したので、次はフェッチの構成(下り)の設定を行います。

 

■フェッチ構成の作成
「Gitリポジトリー」ビューのフェッチ構成(緑色の下向き矢印アイコン)を選択し、
マウスの右ボタンをクリックします。
メニューが表示されるので「フェッチの構成」を選択します。
フェッチ構成の選択

 

「フェッチ構成」のサブウィンドウが開きます。
URLは、先ほどのプッシュ構成と共用のため既に設定されています。
「追加」ボタンをクリックします。
フェッチ構成参照マッピング追加

 

「フェッチの参照仕様を追加」のサブウィンドウが開きます。
「ソース」に、プッシュ構成で行った要領で「master」と入力してEnterキーを押します。
自動的に「refs/heads/master」に変わるはずですが、変わらない場合は、
手動で「refs/heads/master」を入力してください。
入力が完了したら、「完了」ボタンをクリックします。
フェッチ・ソース選択

 

「フェッチ構成」のサブウィンドウに戻ります。
参照マッピングに、今設定した内容が表示されているので
「保管」ボタンをクリックします。
フェッチ構成保管
以上で、共有リポジトリ(リモートリポジトリ)の設定は完了です。

 

■リモートリポジトリへのプッシュ
Eclipseのナビゲータに戻ります。
この状態では、ファイルはローカルリポジトリまではコミットされていますが、
リモートリポジトリには反映されていません。
ここで、リモートリポジトリへのプッシュを行います。

ナビゲータビューのプロジェクト名を選択し、マウス右ボタンをクリックします。
メニューが表示されるので、「チーム」-「コミット」を選択します。
リモートリポジトリへのプッシュ

 

「コミットするファイルがありません」というダイアログボックスが表示されますが、
お構いなく「はい」ボタンをクリックします。
コミットするファイルがありません

 

「変更をコミット」サブウィンドウが開くので、
コミット・メッセージ欄にコメントを入力して、
「コミットおよびプッシュ」ボタンをクリックします。
リモートリポジトリへのプッシュ
以上で、リモートリポジトリにファイルが反映されました。

 

■リモートリポジトリからのプル
リモートリポジトリから、ローカルリポジトリへのファイルのプルを行います。
ナビゲータビューのプロジェクト名を選択して、マウスの右ボタンをクリックします。
メニューが表示されるので、「チーム」-「プル」を選択します。
リモートリポジトリ側で変更されたファイルがある場合は、ローカルリポジトリに変更が反映され、
さらにローカルのEclipseにも変更が反映されます。
リモートリポジトリからのプル