Merging multiple branches with git

51,999

Solution 1

  1. git checkout master
  2. git pull origin feature1 feature2
  3. git checkout develop
  4. git pull . master (or maybe git rebase ./master)

The first command changes your current branch to master.

The second command pulls in changes from the remote feature1 and feature2 branches. This is an "octopus" merge because it merges more than 2 branches. You could also do two normal merges if you prefer.

The third command switches you back to your develop branch.

The fourth command pulls the changes from local master to develop.

Hope that helps.

EDIT: Note that git pull will automatically do a fetch so you don't need to do it manually. It's pretty much equivalent to git fetch followed by git merge.

Solution 2

I would just "fetch" all of origin:

git fetch origin

now that it is in your repo you can merge the branches into master:

git checkout master

git merge origin/feature1 

git merge origin/feature2 

now you can merge master into develop

git checkout develop
git merge master 

if you are going to commit back to origin then I would setup a local tracking branch so you can have local access and push directly to origin:

git branch --track origin/feature1 feature1
Share:
51,999
Chvanikoff
Author by

Chvanikoff

Web-developer. Tools: Kohana 3, php Designer 7, dbForge for MySQL

Updated on October 03, 2020

Comments

  • Chvanikoff
    Chvanikoff over 3 years

    I have 2 local branches called "develop" and "master"; they are similar. On my company's server there's one "main" repo (production) and several branches that were made by other developers:

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

    How can I merge remotes/origin/feature1 and remotes/origin/feature2 into my local "master" branch, copy that all into "develop" and start working with actual code in my "develop" branch?