我知道如何创建跟踪远程分支的新分支,但如何使现有分支跟踪远程分支?
我知道我可以编辑.git/config文件,但似乎应该有一种更简单的方法。
我知道如何创建跟踪远程分支的新分支,但如何使现有分支跟踪远程分支?
我知道我可以编辑.git/config文件,但似乎应该有一种更简单的方法。
当前回答
确保您运行:
git config push.default tracking
能够顺利推进
其他回答
对于1.6.x,可以使用git_remote_branch工具完成:
grb track foo upstream
这将导致Git使foo跟踪上游/foo。
给定分支foo和远程上游:
截至Git 1.8.0:
git branch -u upstream/foo
或者,如果本地分支foo不是当前分支:
git branch -u upstream/foo foo
或者,如果您想键入更长的命令,这些命令相当于以上两个命令:
git branch --set-upstream-to=upstream/foo
git branch --set-upstream-to=upstream/foo foo
截至Git 1.7.0(1.8.0之前):
git branch --set-upstream foo upstream/foo
笔记:
以上所有命令都将导致本地分支foo从远程上游跟踪远程分支foo。旧的(1.7.x)语法被弃用,取而代之的是新的(1.8+)语法。新语法旨在更直观、更容易记住。当对尚未获取的新创建的远程设备运行时,定义上游分支将失败。在这种情况下,请预先在上游运行gitfetch。
另请参见:为什么我需要一直做“--set upstream”?
如果运行后出现“错误:请求的上游分支'origin/foo'不存在”:
git branch -u origin/foo
确保原点确实有一个foo分支。确保remote.origin.fetch变量设置为+refs/heads/*:refs/remotes/origin/*:
$ git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'
$ git config --get remote.origin.fetch
+refs/heads/*:refs/remotes/origin/*
运行git fetch-v。您应该看到git从origin/foo更新:
$ git fetch -v
From github.com:davidhcefx/test
* [new branch] foo -> origin/foo
= [up to date] master -> origin/master
成功后,git branch-avv将显示方括号,表示跟踪的远程分支:
$ git branch -u origin/foo
branch 'foo' set up to track 'origin/foo'.
$ git branch -avv
* foo 92c5ada [origin/foo] Initial commit
master 92c5ada [origin/master] Initial commit
简而言之
git branch --set-upstream yourLocalBranchName origin/develop
这将使您的LocalBranchName跟踪名为develop的远程分支。
这也行
git branch --set-upstream-to=/< remote>/< branch> < localbranch>