远程存储库包含各种分支,如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
远程存储库包含各种分支,如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
当前回答
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撰写(为便于阅读而删减)
其他回答
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撰写(为便于阅读而删减)
我想给您一个命令行,用于将所有远程分支提取到本地并切换到所需的新创建的本地分支:
git fetch && git checkout discover
运行上述命令后,您将收到以下消息:
Switched to a new branch 'discover'
Branch discover set up to track remote branch discover from origin.
第一行表示切换到新分支-为什么新?它已经在远程!
但实际上你也必须在本地创建它。该分支从远程索引中获取,并在本地为您创建。
这里的discover是从存储库的远程分支discover创建的一个新分支。
但第二行比第一行提供了更多信息,告诉我们:
我们的分支机构旨在跟踪同名的远程分支机构。
尽管gitfetch会将所有分支获取到本地。但如果您在git分支之后运行它,您将只看到本地的master分支。为什么?
因为对于远程中的每个分支,您也必须在本地创建它,以便将其作为gitcheckout<branchname>进行跟踪,正如我们在上面的示例中所做的那样。
运行gitcheckout命令后,您可以运行gitbranch,现在您可以看到这两个分支:
master和2。在本地列表中发现。
使用gitbranch-a(本地和远程分支)或gitbranch-r(仅远程分支)查看所有远程及其分支。然后,您可以对远程执行git checkout-t remotes/repo/branch并创建本地分支。
还有一个git-ls-remote命令,用于查看该远程的所有ref和标记。
步骤如下:;
gitfetchorigin或gitfetch-all,这将把所有远程分支提取到本地,然后这是您可以使用的第二个选项。git checkout--跟踪原点/<要切换的The_remote_branch>
然后处理这个分支,您可以通过键入
git branch
它显示您当前所在的分支。
如果您正在尝试“签出”一个新的远程分支(仅存在于远程,而不存在于本地),以下是您需要的:
git fetch origin
git checkout --track origin/<remote_branch_name>
这假设您要从原点提取。如果没有,请用远程名称替换源。