gitbranchgit-branchremote-branch

Update a local branch with the changes from a tracked remote branch


I have a local branch named 'my_local_branch', which tracks a remote branch origin/my_remote_branch.

Now, the remote branch has been updated, and I am on the 'my_local_branch' and want to pull in those changes. Should I just do:

git pull origin my_remote_branch:my_local_branch

Is this the correct way?


Solution

  • You have set the upstream of that branch

    (see:

    git branch -f --track my_local_branch origin/my_remote_branch
    # OR (if my_local_branch is currently checked out):
    $ git branch --set-upstream-to my_local_branch origin/my_remote_branch
    

    (git branch -f --track won't work if the branch is checked out: use the second command git branch --set-upstream-to instead, or you would get "fatal: Cannot force update the current branch.")

    That means your branch is already configured with:

    branch.my_local_branch.remote origin
    branch.my_local_branch.merge my_remote_branch
    

    Git already has all the necessary information.
    In that case:

    # if you weren't already on my_local_branch branch:
    git checkout my_local_branch 
    # then:
    git pull
    

    is enough.


    If you hadn't establish that upstream branch relationship when it came to push your 'my_local_branch', then a simple git push -u origin my_local_branch:my_remote_branch would have been enough to push and set the upstream branch.
    After that, for the subsequent pulls/pushes, git pull or git push would, again, have been enough.