从另一个分支重新引用,然后在合并另一个分支

时间:2016-08-12 10:00:06

标签: git merge rebase branching-and-merging

我在这种情况下:

  • 我有一个生产版本的主人
  • 我使用master创建了一个新功能,没有图形(称之为feature
  • 与此同时,我的团队在master上开发了一个新分支,用于新的图形功能(称之为graphics),我也在那里工作(保持待机状态另一个分支)
  • 现在,图形几乎已经结束,我又回到了分支机构feature

分支graphics将在完成并审核后合并到主数据库中,但现在我想将graphics更改也集成到我的分支feature中,该分支也将与主服务器合并结束。

因此,在feature已经合并之后,我们必须将graphics合并到母版中。

最好的方法是什么?我可以通过feature更改来graphics吗?或者将graphics合并到feature(这样我将合并graphics两次?)?或者我必须挑选所有提交?

我希望我的情况很清楚!

2 个答案:

答案 0 :(得分:1)

首先,将graphics合并到master。然后,在feature之上重新master

git checkout master
git merge graphics
git checkout feature
git rebase master

这样,您将获得graphics更改,并在feature中保持整洁的历史记录。

graphics合并到feature之前将其合并到master是非常不明智的,除非您有特殊原因。

但如果你确实有特殊原因,那就继续吧......

git checkout feature
git merge graphics    

请注意,根据具体情况,您可能需要git rebase graphics而不是git merge graphics。最终结果(feature上文件的内容)将完全相同,但历史记录a.k.a.提交树看起来会有所不同。当你最终将两个分支合并到master并且看起来很干净时,后者将避免任何类型的额外冲突;我可能更喜欢这样。但不知道你想要达到什么目标很难说。

N.B。如果您执行git rebase,然后将更多内容提交到graphics,那么您需要在最终合并到git rebase之前再次执行master(我建议您立即执行此操作您已将graphics合并到master)。

答案 1 :(得分:0)

情景1, 将OLD合并到graphics时; 在这种情况下,您可以从master重新定位feature分支,因为master中存在graphics分支更改。

情景2, 当master分支尚未合并且您需要更改时; 在这种情况下,有两种可能性, 一世。只需在graphics分支中取graphics分支拉,将feature分支合并到graphics分支,然后在功能分支中说明feature

II。对git pull origin graphics分支进行rebase feature分支,假设您是功能分支do graphicsgit rebase feature,除非所有rebase冲突和合并冲突已解决。< / p>

最好的方法是使用git rebase --continue分支重新分支您的分支,然后将graphics分支合并到graphics,然后再次创建主服务器的拉取请求。这样做很棒。