8

我在本地主题分支上工作了一段时间,时不时地只做一些更改。

与此同时,master分支也有了显着的发展。我决定将主分支中的新更改合并到我的本地主题分支中(与我分支的原始主提交几乎没有任何更改):

git fetch
git checkout my_branch
git merge origin/master

但随后 git 警告我:

请输入提交消息以解释为什么需要此合并,特别是如果它将更新的上游合并到主题分支中。

这让我很好奇。为什么要发出警告?我应该做一个变基吗?还是樱桃采摘?除此之外,在我的情况下,我将如何使用 rebase 或cherry-pick?

4

1 回答 1

6

与 git 的核心维护者讨论了这个确切消息的措辞,因为你是对的,它不是很清楚。

puppet labs 编程指南很好地解释了为什么这是次优的,并提供了一个更可取的解决方法:

应该在主题分支上完成工作并使用 no-ff 合并。这样做的原因是 git 历史记录变得更加清晰。主题分支组相关的提交很好,并且使用 no-ff 合并保留了历史中的分组。

如果可以避免,请不要将上游分支合并到主题分支中。虽然这是解决上游分支中的开发和开发之间冲突的一种方法,但它会导致不干净的历史 - 尤其是在合并提交中进行代码更改,这非常难以处理。

如果您必须适应外部变化,我们希望您根据上游重新设置您的分支,这样我们就不会陷入混乱。

木偶实验室

于 2012-10-11T15:21:57.930 回答