EclipseでGitを使う(6)マージツールを使う。
0.はじめに
本記事は、EclipseでGitを使ってバージョン管理をしていく方法を説明していくシリーズの第6回です。プルを行った際に、別のメンバが既にプッシュした内容と自分のローカルリポジトリの内容で競合が発生した場合に、マージツールを使用して競合を解消する方法を説明します。
1.プッシュが拒否される
まずは、前回同様に、既に別ユーザが修正&プッシュが完了した状態で、ローカルで修正した内容をプッシュしようとしてみましょう。今回は≪別ユーザ≫と≪自分≫で、以下のような修正を各々加えています。
≪別ユーザ≫
コミットコメント:
Mod Sample1
Add main method line6
プッシュしたファイル:
1 2 3 4 5 6 7 | public class Sample1 { public static void main(String[] args){ System.out.println( "Sample1 modified!" ); System.out.println( "from sourceTree" ); System.out.println( "from sourceTree2" ); //☆ここで競合予定 } } |
≪自分≫
コミットコメント:
Mod Sample1
Add main method line6
プッシュしようとしているファイル:
1 2 3 4 5 6 7 | public class Sample1 { public static void main(String[] args){ System.out.println( "Sample1 modified!" ); System.out.println( "from sourceTree" ); System.out.println( "Add ! ! ! " ); //☆ここで競合予定 } } |
さて、自分のEclipseから、プッシュを行いましょう。「拒否」されればOKです。
このようにプッシュが上手くいかない時には「フェッチ&マージ」(または「プル」)を行うのでしたね。
2.フェッチ&マージ
まずはフェッチしましょう。
以下のようにGitヒストリーが枝分かれするのでしたね。
次にマージしましょう。
プロジェクトを右クリックして「マージ」でしたね。ここで、競合が発生します。
競合が発生すると、赤い矢印「⇔」が競合箇所に表示されます。
さぁ、いよいよマージツールの登場です。
3.マージツールを使う
プロジェクトを右クリックし、「マージツール」を選択しましょう。
以下のようなダイアログが表示されますので、OKをクリックします。
どこが競合しているのか一目でわかりますよね。
マージツールは競合を解消する際に、競合箇所を左右で比較して変更することができる便利なツールです。
「←」の矢印アイコンをクリックすると、右側の競合箇所が左側に移動します。
単純にリモートリポジトリの内容をローカルリポジトリにもっていくだけであれば、これだけで十分です。
修正が発生する場合には、1つずつ競合箇所を修正していきましょう。その時には「↓」矢印アイコンで、
次の競合箇所へと移動していくことができます。
今回は、右側から左側に一行コピペし、以下のようにしてみました。
1 2 3 4 5 6 7 8 | public class Sample1 { public static void main(String[] args){ System.out.println( "Sample1 modified!" ); System.out.println( "from sourceTree" ); System.out.println( "Add ! ! ! " ); System.out.println( "from sourceTree2" ); //☆ここを追加。 } } |
4.コミット&再プッシュ
あとは前回と同じような動きになります。
同期化ビューを使用して、マージ済みとマークしてから再度コミット。
改めてプッシュすれば無事にプッシュできるはずです。
5.まとめ
今回はマージツールを使って競合を解消する方法を書きました。視覚的に競合を修正しやすいというメリットはありますが、少々の修正であれば前回のようにしてもよいかもしれません。競合はよく起こりうることなので、手順に慣れておくとよいでしょう。