2

I am currently on a new branch on my device. I would like to merge the modifications I made to the remote branch master.

I think I have to follow this procedure, but I'm not certain :

git checkout origin master
git pull origin master
git merge "new_branch"
git push origin master

Does this procedure is good?
Is there a more efficient way to do the same thing?

VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250

2 Answers2

0

You can simply fetch, and then merge

git checkout newbranch
git fetch
git merge origin/master

Here, fetch is enough to update your remote tracking branches (the ones in your .git/refs/remotes/origin): you can merge directly from one of those, like origin/master.
I like git fetch because it won't change any file in your working tree, so it is a safe first step.
git pull would fetch plus merge into your current branch.

As an additional step, you can update your local master branch if you want.
I would recommend

git config --global pull.rebase true
git config --global rebase.autoStash true

That way, this is enough, even if you have made some local commits on master, and have some pending modifications:

git checkout master
git pull
VonC
  • 1,262,500
  • 529
  • 4,410
  • 5,250
0

Your suggested steps are fine (with a few modifications):

git checkout master      # removed origin
git pull origin master
git merge new_branch     # removed quotes
git push origin master

This approach is to update your local master branch with changes, then directly update the remote master. However, if you are using a repo provider like GitHub or Bitbucket, you may not be able to directly update the remote master branch. In this case, you would create a pull request from your branch to master, and you would actually do the merge in the opposite direction, namely you merge master into new_branch:

git fetch origin         # update origin/master
git checkout new_branch
git merge origin/master
git push origin new_branch

From here, you would create a pull request in GitHub or whatever service you are using.

Tim Biegeleisen
  • 502,043
  • 27
  • 286
  • 360