我知道如何创建跟踪远程分支的新分支,但如何使现有分支跟踪远程分支?
我知道我可以编辑.git/config文件,但似乎应该有一种更简单的方法。
我知道如何创建跟踪远程分支的新分支,但如何使现有分支跟踪远程分支?
我知道我可以编辑.git/config文件,但似乎应该有一种更简单的方法。
当前回答
在这里,使用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
其他回答
编辑.git/config可能是最简单、最快的方法。无论如何,这就是处理远程分支的Git命令所做的。
如果你不想手动处理这个文件(这并不难),你可以一直使用git-config来完成……但同样,这只会编辑.git/config文件。
当然,在使用git签出时,有一些方法可以自动跟踪远程分支(例如,通过传递--track标志),但这些命令可以处理新的分支,而不是现有的分支。
简而言之
git branch --set-upstream yourLocalBranchName origin/develop
这将使您的LocalBranchName跟踪名为develop的远程分支。
对于像我这样只想将本地分支名称与远程分支名称同步的任何人,这里有一个方便的命令:
git branch -u origin/$(git rev-parse --abbrev-ref HEAD)
您可能会发现git_remote_branch工具很有用。它提供了创建、发布、删除、跟踪和重命名远程分支的简单命令。一个很好的特性是,您可以要求grb命令解释它将执行哪些git命令。
grb explain create my_branch github
# git_remote_branch version 0.3.0
# List of operations to do to create a new remote branch and track it locally:
git push github master:refs/heads/my_branch
git fetch github
git branch --track my_branch github/my_branch
git checkout my_branch
这也行
git branch --set-upstream-to=/< remote>/< branch> < localbranch>