はじめに
今回の記事は大橋が担当します。よろしくお願いします。
さて、GitクライアントとしてSourceTreeを使っていて、
あるとき、作業ブランチにマスターブランチの更新を取り込もうとリベースしたら
コンフリクトしたことがありました。
リベース時にコンフリクトした場合の対処手順の情報はWeb上にいっぱいありましたが、
その多くがGitコマンドでの解説で、SourceTree上での操作がよくわからなかったので、
今回は、SourceTreeでのリベース手順を解説したいと思います。
SourceTreeでリベースしたらコンフリクトしてよくわかんない状況になった、
といった状況の助けになれば幸い。
状況
想定する状況として、
・マスターブランチ(master)から作業ブランチ(test)を切って、作業ブランチに変更を加えた
・その後、マスターブランチにも変更が加えられた
・作業ブランチをマスターブランチのHEADにリベースして、masterの変更を取り込みたい
を考えます。
手順
1. 作業ブランチをチェックアウト
リベースの準備として、作業ブランチをチェックアウトしている状態にします。
2. マスターブランチにリベース
マスターブランチを右クリックして、メニューから「現在の変更を’master'にリベース」を選びます。
すると、確認ダイアログが出るので、「OK」をクリック。
これで、リベース処理が行われます。
3. コンフリクトを解決
もしコンフリクトした場合は、コンフリクトを知らせるダイアログが出るので、
まずは「OK」をクリックして閉じます。
ダイアログを閉じるとコンフリクトしたファイルのリストが出ているはずです。
どうやらこの状況のとき、どのブランチもチェックアウトしていない状態になっているようです。
該当ファイルのコンフリクトを解決します。
コンフリクトを解決したとき、特にコミットなどは必要ありません。
4. リベースの再開
コンフリクトを解決したら、[操作]-[リベースを続ける]を選択します。
確認ダイアログが出るので、すかさず「OK」ボタンをクリック。
コンフリクトしなければ、無事リベースが完了します。
もし再度コンフリクトしたら、コンフリクト解決の手順を繰り返します。
おわり
以上、SourceTreeでのリベース手順になります。