有两个不同的git分支。其中之一是开发正在进行(Branch1)。
在其他分支中,一些PoC工作正在进行(Branch2)。现在,我想挑选从Branch1到Branch2的更改,以便Branch2是最新的。
现在,在选择了4或5个更改之后,我得到了一些合并冲突,并且我无法继续进行进一步的选择。
我是否需要在继续下一个樱桃-pick之前解决所有的冲突,或者我是否可以以某种方式将冲突解决推迟到我精心挑选所有更改(并一起解决所有冲突)?
此外,在这种情况下,是否建议进行樱桃选择或分支合并?
发布于 2013-11-07 17:44:10
在进入下一个
-pick之前,我需要解决所有的冲突
是的,至少在标准的git设置下是这样。你不能在有冲突的时候挑剔。
此外,一般来说,你拥有的越多,冲突就越难解决,所以通常情况下,逐个解决它们会更好。
也就是说,你可以一次精挑细选多个提交,这将会做你所要求的。例如,参见How to cherry-pick multiple commits。例如,如果一些提交撤消了较早的提交,这是很有用的。然后你会想要一次选择所有的东西,这样你就不必为以后提交撤销的更改解决冲突了。
此外,在这种情况下,建议进行樱桃挑选还是分支合并?
通常,如果你想让一个特性分支跟上主开发,你只需合并主->特性分支即可。主要的优点是,稍后的合并功能分支->主功能将不那么痛苦。
只有当您必须从feature分支中排除master中的某些更改时,樱桃拾取才有用。不过,这将是痛苦的,所以我会尽量避免它。
发布于 2013-11-07 15:51:51
在继续之前:
sudo apt-get安装meld
git配置--global merge.tool meld
然后,按照以下方式进行迭代:
git cherry-pick ....
git mergetool
git cherry-pick --continue发布于 2019-06-11 23:50:11
此外,为了完成@claudio所说的,在挑选樱桃时,你也可以使用merging strategy。
所以你可以像这样的git cherry-pick --strategy=recursive -X theirs commit或git cherry-pick --strategy=recursive -X ours commit
https://stackoverflow.com/questions/19830464
复制相似问题