2016-08-12 60 views
0

我在这种情况下我:从衍合另一个分支,然后合并到主合并后的另一分支

  • 我有一个师傅带一个生产版本
  • 我曾在一个新的功能从主,无图形(称之为feature
  • 在同一时间,我的团队在一个新的分支工作从主一个新的图形功能(称之为graphics),我在那里工作过(在待机状态保持其它的分支)
  • 现在,图形几乎在最后,我来了b确认工作到分支feature

分支graphics将合并到主后完成并审查,但现在我想还集成了graphics变成我的分支feature,也将与主后完成合并。

所以我们必须将feature合并到master中,graphics已经合并后。

这样做的最好方法是什么?我可以用graphics更改feature吗?或合并graphicsfeature(这样我会合并graphics两次?)?或者我必须樱桃选择所有提交?

我希望清楚我的场景!

+0

也许是这样的:首先,从'graphics','git rebase master',然后从'master''git merge graphics'。之后,从'feature','git rebase master',然后从'master','git merge feature'? –

回答

0

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

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 graphicsgit merge graphics。最终结果(feature上的文件内容)将完全相同,但历史记录a.k.a.提交树看起来不同。后者将避免任何形式的额外冲突,当你最终将两个分支合并为master并且看起来非常干净;我可能会喜欢这一点。但很难说不知道你想达到什么。

N.B.如果你做了一个git rebase,并且以后再提交到graphics,那么在最终合并到master(我建议在合并graphicsmaster之后立即这样做)之前,您需要再次执行git rebase

+0

我想将'graphics'改成''feature',但它应该完成,所以我不能将'graphics'合并到master中。这是我疯狂的问题的原因:D我认为应该有一个干净的方式来做到这一点在混帐。 –

0

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

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

ii。做rebase你的feature分支对graphics分支,说你是功能分支的做git rebase featuregit rebase --continue,除非所有的rebase冲突和合并冲突都解决了。

最好的办法是将您的分支与graphics分支重新绑定,然后让graphics分支合并到master,然后再次向主设备创建拉取请求。这将是伟大的事情。

相关问题