如何为此 git cherry-pick 引发冲突?

How to raise a conflict for this 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

然后将 Commit C 提交到 master,删除 aaaaa 并在 bar.txt 的其他地方添加 bbbbb

$cat bar.txt
11111
bbbbb
22222
33333
44444
55555

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

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

从这个 我了解到 git amgit apply 在这种情况下也可以通过参数 -3--3way 成功。但是我找不到关于 git cherry-pick 的三向合并的任何配置或参数。

问题:

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

非常感谢。

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

编辑:octopus 在这种情况下实际上不是正确的合并策略,因为它也因有效的 cherry-pick 而失败(正如@Elpiekay 指出的那样)

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

I think you probably want octopus, so your command would be:

git cherry-pick --strategy=octopus C

When I tested it, it gave me this error:

error: could not apply 62f20c5... C