使用跟踪的远程分支更改本地分支

时间:2012-06-30 23:38:36

标签: git branch git-branch remote-branch

我有一个名为' my_local_branch'的本地分支,它跟踪远程分支origin/my_remote_branch

现在,远程分支已更新,我正在使用my_local_branch'并希望引入这些变化。我应该这样做:

git pull origin my_remote_branch:my_local_branch

这是正确的方法吗?

2 个答案:

答案 0 :(得分:62)

您不使用:语法 - pull始终修改当前已签出的分支。因此:

git pull origin my_remote_branch

当你my_local_branch签出时,你会做你想做的事。

由于您已经设置了跟踪分支,因此您甚至无需指定 - 您可以只执行...

git pull

当您my_local_branch签出时,它将从已跟踪的分支更新。

答案 1 :(得分:58)

您已设置该分支的上游

(参见:

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将无效:请改用第二个命令git branch --set-upstream,否则您将获得“fatal: Cannot force update the current branch.”)

这意味着您的分支是already configured,其中包含:

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

Git已经掌握了所有必要的信息 在那种情况下:

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

就够了。


如果在推送“my_local_branch”时尚未建立上游分支关系,那么简单的git push -u origin my_local_branch:my_remote_branch就足以推送设置上游分支。
在此之后,对于随后的提款/推送,git pullgit push将再次成功。