如何为这个小鲜肉挑起冲突

  • 本文关键字:冲突 git git-cherry-pick
  • 更新时间 :
  • 英文 :


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

$cat bar.txt
11111
22222
33333
44444
55555

Commit B to master,在bar.txt中增加一行。

$cat bar.txt
11111
22222
33333
aaaaa
44444
55555

然后Commit C to master,删除aaaaa,在bar.txt的其他地方添加bbbbb

$cat bar.txt
11111
bbbbb
22222
33333
44444
55555

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

现在检查foogit am 00001-bbbbb.patchgit apply 00001-bbbbb.patch将因冲突而失败,如预期的那样。然而,git cherry-pick C将成功,没有任何问题。

从这个问题我了解到,git amgit apply也将成功的参数-3--3way在这种情况下。然而,我找不到任何关于git cherry-pick的三路合并的配置或参数。

问题:

在这种情况下,如何禁用git cherry-pick的三向合并,以便挑选失败?

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

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

我不确定任何其他有效的樱桃选择合并策略(和选项)将导致与上面的git apply相同的行为。我很高兴被证明是错的!

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

git cherry-pick -strategy=octopus C

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

错误:could not apply 62f20c5…C

相关内容

  • 没有找到相关文章

最新更新