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:
git pull
, changes to origin/dev
are merged into dev
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?
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
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With