远程存储库包含各种分支,如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

当前回答

[快速回答]

有很多选择,我最喜欢的是:

-备选方案1:

git fetch --all
git checkout YourBranch

使用此替代方法时,请使用远程存在但不在本地的分支。

-备选方案2:

git checkout -b 'YourBranch' origin/'YourRemote'

也许,这是最简单的方法。

其他回答

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

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

你用“git pull”来保持你的分支分开。我将使用实际的存储库和分支名称来帮助,因为“lbranch”和“rbranch”很难破译。

让我们使用:myteam.unfuddle.com=远程Git服务器tlc=存储库所在的未归档项目帐户daves_branch=远程分支名称

无论有多少分支,您或任何同事都可以运行此命令仅拉动您的分支:

git init
git pull git@myteam.unfuddle.com:myteam/tlc daves_branch:refs/remotes/origin/daves_branch

您也可以一次获取并签出远程分支:

git fetch && git checkout the-branch-name

更新:使用Git Switch

下面写的所有信息都是准确的,但添加了一个新命令gitswitch,简化了工作。

如果daves_branch存在于远程存储库中,但不存在于本地分支中,则只需键入:

git switch daves_branch

由于您在本地没有分支,这将自动使交换机在远程回购上运行。然后,它还将自动设置远程分支跟踪。

请注意,如果daves_branch在本地不存在,则在使用开关之前需要先获取git。


原始帖子

您需要创建跟踪远程分支的本地分支。以下命令将创建一个名为daves_branch的本地分支,跟踪远程分支origin/davis_branch。当您推送更改时,远程分支将被更新。

对于最新版本的Git:

git checkout --track origin/daves_branch

--track是git checkout的简写-b[branch][remotename]/[branch],在本例中[remotename]是原点,[branch是两倍,在本示例中是davesbranch。

对于Git 1.5.6.5,您需要:

git checkout --track -b daves_branch origin/daves_branch

对于Git 1.7.2.3及更高版本,这已经足够了(它可能更早开始,但这是我可以很快找到的最早确认):

git checkout daves_branch

注意,对于最新的Git版本,此命令不会创建本地分支,并将使您处于“分离HEAD”状态。如果需要本地分支,请使用--track选项。

详细信息如下:3.5 Git分支-远程分支,跟踪分支

假设你的遥控器git@xyz.git你想要它的random_branch分支。流程应如下:

首先检查遥控器列表git远程-v如果你没有git@xyz.git在上述命令的输出中,您可以通过git远程添加xyzgit@xyz.git现在,您可以通过git获取xyz现在通过git checkout-b my_copy_random_branch xyz/random_brance检查分支列表查看所有的分支

本地分支my_copy_random_branch将跟踪远程的random_brance分支。