出于某种原因,当苍蝇发生合并冲突时,看起来 git cherry-pick 会拉入其他提交。这些在我们使用时会消失,git mergetool
但会阻止我们手动编辑合并冲突的文件。
有谁知道为什么会这样?
为了说明我的意思,让我们使用一个带有单个文件的全新 git 1.7.4 存储库foo
:
header
footer
让我们在这一点上创建一个名为bar
. 回到 master,让我们在单独的提交中添加三个更改到这个文件。
提交 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
为什么合并冲突的文件包含我们试图挑选的那个之前的提交?