如何为这个git樱桃挑选引发冲突?

时间:2016-09-18 07:08:21

标签: git git-cherry-pick

两个分支masterfoo指向相同的根提交A.工作树只有一个文件bar.txt

$cat bar.txt
11111
22222
33333
44444
55555

将提交B设为master,在bar.txt中添加一行。

$cat bar.txt
11111
22222
33333
aaaaa
44444
55555

然后将提交C设为master,删除aaaaa并在bbbbb中的其他位置添加bar.txt

$cat bar.txt
11111
bbbbb
22222
33333
44444
55555

运行git format-patch -1 C以生成Commit C的补丁,假设其名称为0001-bbbbb.patch

现在结帐foo。正如预期的那样,git am 00001-bbbbb.patchgit apply 00001-bbbbb.patch会因冲突而失败。但是git cherry-pick C会毫无问题地成功。

question我知道git amgit apply在这种情况下也会使用参数-3--3way获得成功。但是我找不到关于git cherry-pick的三向合并的任何配置或参数。

问题:

如果在这种情况下禁用git cherry-pick的三向合并内容,那么樱桃选择会失败?

非常感谢。

1 个答案:

答案 0 :(得分:1)

使用git cherry-pick时,您可以指定合并策略。此处列出了可用的策略:https://git-scm.com/docs/merge-strategies

编辑:octopus在这种情况下实际上并不是正确的合并策略,因为它也失败并且有一个有效的挑选(如@Elpiekay所指出的)

我不确定任何其他有效的挑选合并策略(和选项)是否会产生与上面的git apply相同的行为。我很高兴被证明是错的!

  

我想你可能想要octopus,所以你的命令是:

     

git cherry-pick --strategy =章鱼C

     

当我测试它时,它给了我这个错误:

     

错误:无法应用62f20c5 ... C