与冲突的git采摘樱桃

时间:2013-04-17 20:28:14

标签: git cherry-pick

我有两个分支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? 我怎样才能以一种了解合并的方式进行挑选?

1 个答案:

答案 0 :(得分:3)

你怎么知道?

不使用git cherry,因为它只识别具有相同git patch-idsee man page)的提交,即不是那些必须解决非平凡冲突的提交。

所以你必须通过查看提交消息来了解。

未来的合并将如何了解樱桃选择?

由于您在应用了挑选的更改时解决了冲突,因此在将来合并整个分支时,该提交应该简单地合并。

如果您真的担心git会记住您如何解决冲突,可以启用git rerere

git config --global rerere.enabled true