如何为此 git cherry-pick 引发冲突?
How to raise a conflict for this git cherry-pick?
两个分支master
和foo
指向同一个根提交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.patch
或 git apply 00001-bbbbb.patch
将因冲突而失败。然而 git cherry-pick C
将毫无问题地成功。
从这个 我了解到 git am
或 git 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
两个分支master
和foo
指向同一个根提交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.patch
或 git apply 00001-bbbbb.patch
将因冲突而失败。然而 git cherry-pick C
将毫无问题地成功。
从这个 git am
或 git 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