何らかの理由で、ハエにマージの競合がある場合、git cherry-pick が他のコミットをプルするように見えます。これらは使用すると消えますgit mergetool
が、マージ競合ファイルを手動で編集することはできません。
なぜこれが起こるのか誰か知っていますか?
私の言いたいことを示すために、単一のファイルを持つ新しい git 1.7.4 リポジトリを見てみましょうfoo
:
header
footer
この時点で、 という新しいブランチを作成しましょうbar
。マスターに戻り、このファイルに 3 つの変更を別々のコミットで追加しましょう。
コミット 1:
header
+add something
+
footer
コミット 2:
header
add something
+add something else
+
footer
コミット 3:
header
add something
add something else
+important change!
+
footer
この最後のコミットは重要であるため、これをブランチbar
に戻しgit cherry-pick <commit>
、そのブランチでプルすることにしました。
残念ながら、これにより file で興味深いマージ競合が発生しますfoo
。
header
<<<<<<< HEAD
=======
add something here
add something else here
important change!
>>>>>>> 356ca3c... important change
footer
git mergetool
正しいことをしているように見え、これを生成することに注意してください:
header
+important change!
+
footer
マージ競合ファイルに、選択しようとしたコミットよりも前のコミットが含まれているのはなぜですか?