EclipseでGitを使う(11)ブランチをリベースする。

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


Gitブランチをリベースする。EclipseでGitを使う(11)

はじめに

EclipseでGitを使う方法を説明していくシリーズの第11回目です。今回は、ブランチをリベースする方法について説明していきます。ブランチは、慣れてくるとどんどん作成することができるようになりますが、あまり作りすぎるのは逆によろしくありません。ではどうするのかというと、ブランチを統合するわけです。ブランチの統合は、「マージ」と「リベース」という大きく二つの方法があります。「マージ」と「リベース」双方を行えるようになることで、ブランチの管理がより適切に行えます。第9回ではマージを行う方法を説明しましたので、今回はリベースの説明を行っていきたいと思います。それでは早速、はじめていきましょう。今回はローカルリポジトリでの説明になります。

これまでのGit連載記事

1.サブブランチを作成する。

連載9回目の内容を参考に、サブブランチを作成してみましょう。以下のようにサブブランチが複数ある状態にしておきます。今回は新しいブランチにmasterとsub1を作成しました。この通りでなくて構いませんので、サブブランチがある状態にしておきましょう。
git11-1

masterブランチとsub1ブランチには以下のようなJavaのソースを作成しておきます。
≪masterブランチ≫

public class Sample11 {
	public static void main(String[] args) {
		System.out.println("Sample11.");
		System.out.println("Sample11. master."); //←修正コミットで追加
	}
}

≪sub1ブランチ≫

public class Sample11 {
	public static void main(String[] args) {
		System.out.println("Sample11.");
		System.out.println("Sample11. sub1."); //←1度目の修正コミットで追加
		System.out.println("Sample11. sub1."); //←2度目の修正コミットで追加
	}
}

2.ブランチをリベースする

さて、そもそもリベースとは何でしょうか?リベースは置き換えを意味します。
Gitにおいては、リベース元のブランチのコミット履歴をリベース先のブランチに統合することを指します。

今回は、sub1ブランチのコミット履歴をmasterにリベースしていきます。
それではリベースを行いましょう。
git11-2
リベースしたいブランチのコミットログを右クリックすると「Rebase on Top」というメニューが出てきますのでクリックします。
または、左側のブランチGitリポジトリ-一覧からブランチを右クリックし、「リベース」をクリックしてもリベースが行えます。

すると、以下のようなエラーが発生します。
git1114
競合が発生したというメッセージですね。OKをクリックします。
すると以下のダイアログが表示されます。こちらもOKをクリックします。
git1115

競合箇所が表示されますので、修正します。
git1116

↓修正

git1117

修正が完了したら、ワークスペース同期化で「マージ済みとマーク」をします。
Javaパースペクティブを見るとプロジェクト名の横に「対話式リベース~」と表示されています。
リベース処理が一時停止中のような状態です。
プロジェクトを右クリックし、チーム>リベース>リベースを続行をクリックします。
リベースが上手くいくと、以下のように成功しましたメッセージが表示されます。
git1118

masterの方で複数コミットがあった場合、その競合回数分、競合解消の手順を踏む必要がありますので、
上記の手順を繰り返す必要があることに注意しましょう。

3.リベース結果を確認する。

それではリベース結果を確認してみましょう。
git1119
sub1ブランチの修正結果を履歴に組み込んだ状態で、masterブランチができあがっていることが分かります。
sub1ブランチとmasterブランチが直列になっていますね。

4.まとめ

今回はリベースの手順を見ました。競合が発生したら解消するという点はマージと変わりありませんが、統合の仕方が異なってきます。このあたりの使い方の違いは、また折を見て説明していきたいと思います。

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

PAGE TOP