2013-04-14 151 views
0

我有以下分支:Git的合并多个分支

master 
featureA 
featureB 

多个git仓库。开发同时发生在所有三个分支上。我需要合并功能A功能B并最终合并功能B主功能。目前我做:

切换到功能B并从功能A合并。切换到并从功能B合并。这个过程包含2个开关,因为我需要为大约7个存储库执行此操作,所以需要一些时间。

有没有更好的方式来使用git来做到这一点?

+0

“因为我需要为大约7个仓库” - 也许这是问题所在。为什么七个存储库?但是,你的交换机相对便宜,不是吗? (假设你有一个干净的仓库)否则git命令相对于合并你需要做的任何冲突和重新测试最终的合并代码相对来说会相对较快。 – Rup

+0

这七个存储库是否包含相同的代码?您通常只进行一次合并,并将其推送到任何其他存储库。 – michas

+0

这是一个迹象表明七个存储库应该是一个存储库。 – alternative

回答

1

您需要对7个存储库中的每个存储库执行两个步骤。听起来像是编写shell脚本以在每个回购中为您运行必要的git命令的好例子。只要你的回购是分开的,我认为git本身对你来说没有太大的帮助。你也可以考虑通过“子模块”来连接它们(虽然我不确定它会在这里起作用)。

1

这听起来有点不正常。如果您有六到七名开发人员都在使用featureA或featureB,那么他们应该已经彼此同步。也就是说,在发展过程中,他们彼此间或通过指定的中央存储库间接推/拉。这是他们在开发功能时如何一起工作的。

在这种情况下剩下的唯一的事情是:

# your 4 steps 
git checkout featureB 
git merge featureA 
git checkout master 
git merge featureB 

在此之后,每个开发者拉主,他们可以删除featureA和featureB或只是放弃他们。

发展继续执行每一个开发人员创建新的要素分支主

0

我建议合并顺序如下。

//merge master to featureA 
git checkout master 
git merge featureA 

//merge featureA to master 
git checkout featureA 
git merge master 

//merge master to featureB 
git checkout master 
git merge featureB 

//merge featureB to master 
git checkout featureB 
git checkout master 

通过这种方式,featureA和featureB两个修改都安全地合并为主。此外,即使事先有任何主修改,也不会发生合并遗漏。

但是,订单很复杂。这就是为什么如果手动有可能使操作出错。 似乎有自动化订单的工具,请使用Google进行搜索。

0

尝试运行此命令:

  • git的结帐主
  • 混帐合并featureA featureB

您可以合并所有你一步到位的愿望分支。只要创建合并链:

  • 混帐合并A B C dé

将合并分支的a,b,c,d和E在你当前分支。

如果其中一个主题导致冲突,则合并失败。明显。