我有两个分支Z,其中一些已更改,M有一些相互矛盾的更改。我想将Z上的第一个更改合并到M.当我试图看到哪些更改仍在那里时。 (实际上还有一些更改,但这已经显示了问题)
$ git checkout M
$ git cherry M Z
+ 153c2f840f2192382be1fc435ceb069f0814d7ff
+ 4a7979d5dd526245b51769db21acf4c286825036
$ git cherry-pick 153c2f840f2192382be1fc435ceb069f0814d7ff
error: could not apply 153c2f8... add Z
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'
• (M|CHERRY-PICKING) $ git st
# On branch M
# Unmerged paths:
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# both modified: README.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
• (M|CHERRY-PICKING) $ vim README.txt
我在这里解决了冲突
• (M|CHERRY-PICKING) $ git add README.txt
• (M|CHERRY-PICKING) $ git ci -m'cherry picked'
[M dc5de35] cherry picked
1 file changed, 1 insertion(+), 1 deletion(-)
• (M) $ git cherry M Z
+ 153c2f840f2192382be1fc435ceb069f0814d7ff
+ 4a7979d5dd526245b51769db21acf4c286825036
因此,在我做出改变之后,它仍然认为这些改变都没有被挑选出来 我在期待:
- 153c2f840f2192382be1fc435ceb069f0814d7ff
+ 4a7979d5dd526245b51769db21acf4c286825036
从现在开始我怎么会知道我已经合并了153c2f? 我怎样才能以一种了解合并的方式进行挑选?
答案 0 :(得分:3)
你怎么知道?
不使用git cherry
,因为它只识别具有相同git patch-id
(see man page)的提交,即不是那些必须解决非平凡冲突的提交。
所以你必须通过查看提交消息来了解。
未来的合并将如何了解樱桃选择?
由于您在应用了挑选的更改时解决了冲突,因此在将来合并整个分支时,该提交应该简单地合并。
如果您真的担心git会记住您如何解决冲突,可以启用git rerere:
git config --global rerere.enabled true