如何拉动新分支并同时设置跟踪?

时间:2014-01-13 19:19:07

标签: git

假设新分支NEW刚出现在远程仓库中。是否有git命令为NEW创建跟踪分支,同时从远程仓库中提取它(具体)? (通过“特定”位我的意思是只拉分支NEW。)

FWIW:我使用的是1.7.6版本。

编辑:期望的场景

(前)

% git branch -a
  bar
  baz
  foo
* master
  remotes/somerepo/bar
  remotes/somerepo/baz
  remotes/somerepo/foo
  remotes/somerepo/master

(后)

% git branch -a
  bar
  baz
  foo
* master
  NEW
  remotes/somerepo/bar
  remotes/somerepo/baz
  remotes/somerepo/foo
  remotes/somerepo/master
  remotes/somerepo/NEW

2 个答案:

答案 0 :(得分:1)

修改

这可能是你想要的:

git checkout -tb NEW somerepo/NEW

答案 1 :(得分:1)

你可以这样做:

git branch NEW somerepo/NEW

这将创建本地分支NEW,设置为从NEW跟踪远程分支somerepo

关于git pull的问题是,它是git fetchget merge的组合。由于git merge只能在当前分支上运行,因此您无法将git pull用于此目的。如果要获取特定分支并创建本地分支以进行跟踪,则必须使用以下命令:

git fetch remote branchname
git branch branchname remote/branchname

在旧版本的Git中,git fetch remote branch可能无法正确创建.git/refs/remotes/remote/branchname。我测试了这个版本的1.8.4版,但它从版本1.7.10.4开始不起作用。如果它不适用于您的版本,则必须使用这种更详细的语法:

git fetch remote branchname:remotes/remote/branchname

或者如果你不介意取出所有分支,你可以只做git fetch remote