次のケースを取り上げます。
トピックブランチでいくつかの作業があり、マスターにマージする準備ができました:
* eb3b733 3 [master] [origin/master]
| * b62cae6 2 [topic]
|/
* 38abeae 1
マスターからマージを実行し、競合を解決すると、次のようになります。
* 8101fe3 Merge branch 'topic' [master]
|\
| * b62cae6 2 [topic]
* | eb3b733 3 [origin/master]
|/
* 38abeae 1
ここで、マージに時間がかかったので、別のフェッチを行って、リモート マスター ブランチに新しい変更があることに気付きました。
* 8101fe3 Merge branch 'topic' [master]
|\
| * b62cae6 2 [topic]
| | * e7affba 4 [origin/master]
| |/
|/|
* | eb3b733 3
|/
* 38abeae 1
マスターから試すとgit rebase origin/master
、すべての競合を再度解決する必要があり、マージ コミットも失われます。
* d4de423 2 [master]
* e7affba 4 [origin/master]
* eb3b733 3
| * b62cae6 2 [topic]
|/
* 38abeae 1
以下に示すような履歴になるように、マージ コミットをリベースするクリーンな方法はありますか?
* 51984c7 Merge branch 'topic' [master]
|\
| * b62cae6 2 [topic]
* | e7affba 4 [origin/master]
* | eb3b733 3
|/
* 38abeae 1