有两种不同的git分支。在一个开发中(Branch1)。
在其他分支中,一些PoC工作正在进行(Branch2)。现在,我想挑选从Branch1到Branch2的更改,以便Branch2是最新的。
现在,在挑选了4或5个变化之后,我发现了一些合并冲突,我无法继续进行更多挑选。
在进行下一次樱桃挑选之前,我需要解决所有冲突吗?或者我能否以某种方式推迟解决冲突,直到我挑选所有更改(并一起解决所有冲突)?
此外,是否建议在这种情况下进行樱桃挑选或分支合并?
答案 0 :(得分:48)
继续之前:
安装合适的mergetool。在Linux上,我强烈建议你使用meld:
sudo apt-get install meld
配置mergetool:
git config --global merge.tool meld
然后,按以下方式迭代:
git cherry-pick ....
git mergetool
git cherry-pick --continue
答案 1 :(得分:26)
在继续下一步之前,我需要解决所有冲突 cherry -pick
是的,至少使用标准的git设置。在有冲突时你不能挑选。
此外,一般情况下,冲突越难以解决,因此通常情况下,逐一解决冲突会更好。
那就是说,你可以一次性挑选多个提交,这可以满足你的要求。参见例如How to cherry-pick multiple commits。如果例如某些提交撤消先前的提交,这将非常有用。然后你想要一次性挑选所有内容,这样你就不必解决因以后提交而撤消的更改的冲突。
此外,建议在此进行樱桃挑选或分支合并 情况?
通常,如果您希望功能分支与主开发保持同步,则只需合并master - >特色分支。主要优点是后来的合并功能分支 - >掌握将不那么痛苦。
只有在必须从功能分支中排除master中的某些更改时,才能使用Cherry挑选。不过,这将是痛苦的,所以我试图避免它。
答案 2 :(得分:0)
此外,要完成@claudio所说的内容,在摘樱桃时,您还可以使用merging strategy。
所以您可以使用类似git cherry-pick --strategy=recursive -X theirs commit
或git cherry-pick --strategy=recursive -X ours commit