[译]拉取仓库远程分支

原文来源: https://stackoverflow.com/questions/9537392/git-fetch-remote-branch

问:
我和同事在同一个仓库下工作,由于项目技术上面的不同,我们分成了两个分支进行开发。但是他们有相似之处,有的时候我们想要从branch分支切回到master分支上。
然而,我是在分支branch上。我的问题是,我的同事怎么能拉那个特定分支?

git clone仓库看上去并没有给他在本地创建那个分支。但是我在终端上推送后能看到这个分支。
此外,当我最初创建分支时,我做了-b checkout。不确定这个操作是否有影响?

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

$ git fetch origin discover
$ git checkout discover

这些是我跑的命令。但确定没有生效。
我希望能够切换到该分支,然后推送并提交来自各个协作者或工作站的分支更改。

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

对于最新版本的git:

git checkout --track origin/daves_branch

--track这是git checkout -b [branch] [remotename]/[branch][remotename] 在这种情况下起源的地方的简写,[branch]是两倍相同,在这种情况下是daves_branch。

对于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选项。详细信息请访问:http://git-scm.com/book/en/v2/Git-Branching-Remote-Branches#Tracking-Branches

posted @ 2019-07-24 14:22  bingo彬哥  阅读(334)  评论(0编辑  收藏  举报
本站总访问量