9

这可能是一个幼稚的 git 问题,但它是:

在进行拉取请求之前,我通常从上游的最新提交创建一个新分支,并从我的开发分支中挑选重要的提交。然后从我的新分支向远程存储库发出拉取请求。

但是我讨厌合并冲突(尽管 git mergetool 在它们发生时有很大帮助)。我怀疑其中一些冲突是由樱桃挑选的顺序引起的。我通常会从最旧到最新的提交中挑选一组提交。这是正确的方法吗。还是提交顺序对git无关紧要?

是否有任何其他技巧可以最大限度地减少樱桃采摘期间的合并冲突?

4

2 回答 2

11

您绝对应该按顺序挑选提交。如果你不这样做,它们可能不适用——想象一个提交添加了 foo.c,而下一个提交修改了它。显然,它们不会出现故障。一般来说,即使不是那么明显,也有一些合乎逻辑的开发流程,你不想搞砸它。也就是说,我不确定您为什么要手动创建分支并挑选樱桃;它相当于(只要你不跳过提交)到git pull --rebase.

如果您在挑选时遇到合并冲突,则更多地表明您的开发过程并不理想。这意味着您在开发分支中所做的事情也在上游发生了变化。您可以通过不使用其他人正在处理的相同代码来帮助自己,或者pull --rebase在开发过程中更频繁地从上游拉取(可能再次),而不是等到最后。

于 2012-04-07T19:42:57.617 回答
4

当然,提交顺序很重要。如果提交 B 修改了提交 A 中首次引入的内容,那么在应用提交 A 之前,您不能应用提交 B。

你的工作流程很奇怪。您应该git rebase在上游分支的内容之上重建您的分支,或者只是git merge将上游分支重建到您的分支中。这避免了挑选工作,实际上让 git 有更好的机会自动解决冲突。

于 2012-04-07T19:43:42.940 回答