为什么这个樱桃选择会导致合并冲突

时间:2015-06-23 12:34:46

标签: git cherry-pick git-cherry-pick

编辑:我添加了一些我认为不必要的信息,但事实并非如此。 我有两个分支,A和B.在A中进行三次提交后更改了file.c我想将它们挑选到B中,还有一个在A~1中更改的file.h

> git cherry-pick A~2
Success
> git cherry-pick A~1
error: could not apply 81e0723... 
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'
> git status
You are currently cherry-picking commit 81e0723.
Unmerged paths:
(use "git add <file>..." to mark resolution)

  both modified:   some/unrelated/file.txt
  both modified:   file.c

现在,在查看某些/不相关的/ file.txt时,它包含对中间某处的file.h的更改。所以这看起来像是git中的一个bug。所以我现在手动撤消一些/不相关/ file.txt的更改并将它们添加到file.h。

2 个答案:

答案 0 :(得分:1)

可能樱桃选择正在改变A~1历史中早期已更改的功能,因此B中具体的更改是对已经看起来与B版本中的内容有所不同,git无法查看A~1^樱桃选择更改的适用位置。

上下文git找到的变化也有可能是邪恶的双胞胎在代码的其他地方等待(比如,除了独立的关闭括号之外什么都没有),而其他的变化已经把真正的相应原件在您的代码中,距离B中的位置远远不足以寻找git cherry-pick -Xpatience中的上下文。该手册建议中止樱桃选择并用SmsManager.Default.SendTextMessage("123456789", null, "bbbbb", null, null); 进行重试可能足以避免与那些人发生问题,这种情况通常会花费不合理的时间来避免在大括号中迷失。 Here's probably a good place to start if you want details on how that really works

答案 1 :(得分:0)

Cherry挑选与按顺序应用一组补丁没有什么不同(有了获取先前提交消息的好处)。这必然会产生新的斑点 - 你可以通过注意他所犯的不同来验证。

当合并时间到来时,answer is 5现在认为它正在查看不同的历史记录,因为技术上它是,因此合并冲突。

相关问题