Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Git- Tracking remote branches

Tags:

git

branch

I am a Mercurial user, and I am confused about the behaviour of remote branches. I have a remote branch origin/dev, and I want to replicate it on a local branche dev. What I would like is that:

  • whenever I git pull, changes to origin/dev are merged into dev
  • whenever I git push, changes to dev are merged into origin/dev

So I created a tracking branch with

git branch --track dev origin/dev

which, to the best of my knowledge, should do exactly what I need.

Still, I was working on a feature branch and issued a git pull. When I later issued git checkout dev I received the puzzling message

Your branch is behind 'origin/master_dev' by 2 commits, and can be fast-forwarded.

So it seems that my local branch was not updated after all. Is there a way to have the branch updated to the remote one whenever I pull and I am not currently in that branch? If not, am I correct that git merge (without any arguments) on branch dev is enough to restore the situation?

like image 929
Andrea Avatar asked Jul 26 '12 09:07

Andrea


1 Answers

The command git pull fetches updates from all remote branches (i.e, updates all the remote tracking branches). But merges only the current branch. This is a default behavior of git pull when no argument passed.

As you were on a diff branch when you git pull, it just updated the remote tracking branch for dev. Now git merge would be enough to update your local branch dev.

like image 149
Karthik Bose Avatar answered Sep 30 '22 00:09

Karthik Bose