Git Cherry-Pick和Conflicts

Abh*_*nav 41 git cherry-pick git-cherry-pick

有两种不同的git分支.在一个开发进入(Branch1).

在其他分支中,一些PoC工作正在进行(Branch2).现在,我想挑选从Branch1到Branch2的更改,以便Branch2是最新的.

现在,在挑选了4或5个变化后,我发现了一些合并冲突,我无法继续进行更多挑选.

在进行下一次樱桃挑选之前,我需要解决所有冲突吗?或者我能否以某种方式推迟解决冲突,直到我挑选所有的变化(并一起解决所有冲突)?

此外,是否建议在这种情况下进行樱桃挑选或分支合并?

Cla*_*dio 56

在继续之前:

然后,按以下方式迭代:

git cherry-pick ....
git mergetool
git cherry-pick --continue
Run Code Online (Sandbox Code Playgroud)


sle*_*ske 31

在进行下一次樱桃挑选之前,我需要解决所有冲突

是的,至少使用标准的git设置.在有冲突时你不能挑选.

此外,一般情况下,冲突越难以解决,因此通常更好地逐一解决冲突.

也就是说,您可以一次性挑选多个提交,这可以满足您的要求.请参阅例如如何挑选多个提交.如果例如某些提交撤消先前的提交,这将非常有用.然后你想要一次性挑选所有内容,这样你就不必解决因以后提交而撤消的更改的冲突.

此外,是否建议在这种情况下进行樱桃挑选或分支合并?

通常,如果要使功能分支与主开发保持同步,则只需合并master - > feature branch.主要优点是后来的合并功能分支 - > master将不那么痛苦.

只有在必须从功能分支中排除master中的某些更改时,才能使用Cherry挑选.尽管如此,这将是痛苦的,所以我试图避免它.


jer*_*mie 6

此外,为了完成@claudio 所说的,在挑选樱桃时,您还可以使用合并策略

所以你可以像这样git cherry-pick --strategy=recursive -X theirs commitgit cherry-pick --strategy=recursive -X ours commit