用git合并多个分支

时间:2011-03-13 20:33:12

标签: git merge rebase

我有2个本地分支叫做“开发”和“主人”;他们是相似的。在我公司的服务器上有一个“主要”仓库(生产)和几个由其他开发商制造的分支机构:

$ git branch -a
* develop
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/some-test
  remotes/origin/feature1
  remotes/origin/feature2
  remotes/origin/master

如何将remotes/origin/feature1remotes/origin/feature2合并到我的本地“master”分支中,将所有内容复制到“develop”并开始使用我的“develop”分支中的实际代码?

2 个答案:

答案 0 :(得分:35)

  1. git checkout master
  2. git pull origin feature1 feature2
  3. git checkout develop
  4. git pull . master(或者git rebase ./master
  5. 第一个命令将当前分支更改为master

    第二个命令从远程feature1feature2分支引入更改。这是一个“章鱼”合并,因为它合并了2个以上的分支。如果您愿意,也可以进行两次正常合并。

    第三个命令会将您切换回develop分支。

    第四个命令将更改从本地master提取到develop

    希望有所帮助。

    编辑:请注意,git pull会自动执行fetch,因此您无需手动执行此操作。它几乎相当于git fetch后跟git merge

答案 1 :(得分:9)

我只是“获取”所有原点:

git fetch origin

现在它在您的仓库中,您可以将分支合并为master:

git checkout master

git merge origin/feature1 

git merge origin/feature2 

现在你可以将master合并到develop

git checkout develop
git merge master 

如果您要提交回原点,那么我会设置一个本地跟踪分支,以便您可以进行本地访问并直接推送到原点:

git branch --track origin/feature1 feature1