远程存储库包含各种分支,如origin/davis_branch:

$ git branch -r
origin/HEAD -> origin/master
origin/daves_branch
origin/master

如何将daves_branch获取到本地存储库,以便它跟踪origin/davis_branch?

我尝试了:

$ git fetch origin discover
$ git checkout discover

当前回答

如果您正在尝试“签出”一个新的远程分支(仅存在于远程,而不存在于本地),以下是您需要的:

git fetch origin
git checkout --track origin/<remote_branch_name>

这假设您要从原点提取。如果没有,请用远程名称替换源。

其他回答

git branch<name>--跟踪原点/<name>

Use:

git checkout -b serverfix origin/serverfix

这是一个非常常见的操作,Git提供了--track速记:

git checkout --track origin/serverfix

事实上,这是如此普遍,甚至有一条捷径。如果您尝试签出的分支名称(a)不存在,并且(b)仅与一个远程服务器上的名称完全匹配,Git将为您创建一个跟踪分支:

git checkout serverfix

要使用与远程分支不同的名称设置本地分支,可以轻松地使用具有不同本地分支名称的第一个版本:

git checkout -b sf origin/serverfix

现在,您的本地分支sf将自动从origin/serverfix中提取。

来源:Pro Git,第二版,由Scott Chacon和Ben Straub撰写(为便于阅读而删减)

使用gitbranch-a(本地和远程分支)或gitbranch-r(仅远程分支)查看所有远程及其分支。然后,您可以对远程执行git checkout-t remotes/repo/branch并创建本地分支。

还有一个git-ls-remote命令,用于查看该远程的所有ref和标记。

只需尝试:

git pull origin your_branch_name

git fetch&&git checkout<你朋友的分行名>应该可以做到这一点