EclipseでGitを使う(6)マージツールを使う。

この記事は2015年9月26日に書かれたものです。内容が古い可能性がありますのでご注意ください。


EclipseでGitを使う(6)マージツールを使う。

0.はじめに

本記事は、EclipseでGitを使ってバージョン管理をしていく方法を説明していくシリーズの第6回です。プルを行った際に、別のメンバが既にプッシュした内容と自分のローカルリポジトリの内容で競合が発生した場合に、マージツールを使用して競合を解消する方法を説明します。

1.プッシュが拒否される

まずは、前回同様に、既に別ユーザが修正&プッシュが完了した状態で、ローカルで修正した内容をプッシュしようとしてみましょう。今回は≪別ユーザ≫と≪自分≫で、以下のような修正を各々加えています。

≪別ユーザ≫
コミットコメント:
Mod Sample1
Add main method line6

プッシュしたファイル:


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

プッシュしようとしているファイル:


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ヒストリーが枝分かれするのでしたね。
git6-1

次にマージしましょう。
プロジェクトを右クリックして「マージ」でしたね。ここで、競合が発生します。
git6-2

競合が発生すると、赤い矢印「⇔」が競合箇所に表示されます。
さぁ、いよいよマージツールの登場です。

3.マージツールを使う

プロジェクトを右クリックし、「マージツール」を選択しましょう。
以下のようなダイアログが表示されますので、OKをクリックします。
git6-3

すると、以下のようなタブが立ち上がります。
git6-4

どこが競合しているのか一目でわかりますよね。
マージツールは競合を解消する際に、競合箇所を左右で比較して変更することができる便利なツールです。
「←」の矢印アイコンをクリックすると、右側の競合箇所が左側に移動します。
単純にリモートリポジトリの内容をローカルリポジトリにもっていくだけであれば、これだけで十分です。
修正が発生する場合には、1つずつ競合箇所を修正していきましょう。その時には「↓」矢印アイコンで、
次の競合箇所へと移動していくことができます。

今回は、右側から左側に一行コピペし、以下のようにしてみました。


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.まとめ

今回はマージツールを使って競合を解消する方法を書きました。視覚的に競合を修正しやすいというメリットはありますが、少々の修正であれば前回のようにしてもよいかもしれません。競合はよく起こりうることなので、手順に慣れておくとよいでしょう。

  • このエントリーをはてなブックマークに追加

PAGE TOP