在长期居住的本地主题分支上工作时,与远程主人"保持联系"

Jos*_*osh 8 git version-control

我已经在一个本地话题分支上工作了一段时间,偶尔只做一些改动.

与此同时,分支发展迅速.我决定将主分支中的新更改合并到我的本地主题分支中(与我分支的原始主提交相比几乎没有任何变化):

git fetch
git checkout my_branch
git merge origin/master
Run Code Online (Sandbox Code Playgroud)

但是git警告我:

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

这让我很好奇.为什么警告?我应该做的,而不是一个重订?还是樱桃挑选?除此之外,我如何在我的情况下使用rebase或者Cherry-pick?

kay*_*243 6

用git的核心维护者对这个确切消息的措辞进行了一些讨论,因为你是对的,不是很清楚.

puppet labs编程指南提供了一个很好的解释,说明为什么这不是最理想的,并提供了一个更优选的解决方法:

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

如果可以避免,请不要将上游分支合并到主题分支中.虽然这是解决上游分支中开发和开发之间冲突的一种方法,但它会导致不洁的历史记录 - 尤其是在合并提交中进行代码更改时,这些代码更改难以使用.

如果你必须适应外部变化,我们宁愿你将你的分支机构重新设置为上游,这样我们就不会遇到这种混乱.

木偶实验室

  • 它基本上是说:将更改从上游移动到主题分支时进行rebase,将更改从主题分支移动到上游分支时进行合并. (3认同)