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

2) 使用远程分支名称创建本地分支

git fetch && git checkout 'remote-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 pull origin your_branch_name

本地获取分支:

git fetch origin <branchName>

移动到该分支:

git checkout <branchName>

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

要签出远程而非本地存在的myBranch,这对我很有用:

git fetch --all
git checkout myBranch

我收到了这条消息:

Branch myBranch set up to track remote branch myBranch from origin
Switched to a new branch 'myBranch'