我知道如何创建跟踪远程分支的新分支,但如何使现有分支跟踪远程分支?
我知道我可以编辑.git/config文件,但似乎应该有一种更简单的方法。
我知道如何创建跟踪远程分支的新分支,但如何使现有分支跟踪远程分支?
我知道我可以编辑.git/config文件,但似乎应该有一种更简单的方法。
当前回答
使用“--track”选项
在一次git拉动后:git checkout--track<远程分支名称>或:git获取和git签出<分支名称>
其他回答
简而言之
git branch --set-upstream yourLocalBranchName origin/develop
这将使您的LocalBranchName跟踪名为develop的远程分支。
在这里,使用github和git版本2.1.4,只需执行以下操作:
$ git clone git@github.com:user/repo.git
遥控器由itelsef提供,即使没有本地链接:
$ git remote show origin
* remote origin
Fetch URL: git@github.com:user/repo.git
Push URL: git@github.com:user/repo.git
HEAD branch: master
Remote branches:
develop tracked <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
master tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (up to date)
但当然,仍然没有本地分支机构:
$ git branch
* master <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
看见现在,如果您只是签出develp,它将自动执行魔术:
$ git checkout develop
Branch develop set up to track remote branch develop from origin.
Switched to a new branch 'develop'
很容易!
总结只需运行以下两个命令:
$ git clone git@github.com:user/repo.git
$ git checkout develop
如果运行后出现“错误:请求的上游分支'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
对于1.6.x,可以使用git_remote_branch工具完成:
grb track foo upstream
这将导致Git使foo跟踪上游/foo。
确保您运行:
git config push.default tracking
能够顺利推进