如何在创建具有相同名称的本地分支时自动跟踪远程分支?

时间:2014-11-08 08:58:24

标签: git settings git-remote

我在几台机器上使用Git。我必须有一个配置,这会延迟其中一台机器,因为在这种情况下,我在master并且有一个远程分支origin/foo,并且想要创建一个本地分支foo ,跟踪远程分支发生以下情况:

  • 在大多数机器上我需要使用的命令是(在master上时):

    git checkout -b foo origin/foo
    
  • 但是在其中一台机器上,如果我只使用:

    就足够了
    git checkout -b foo
    

在这两种情况下我都会

Branch foo set up to track remote branch foo from origin.

但是,第二个命令仅适用于我的一台计算机,其余部分只检查本地分支foo。为什么这个和哪个设置对它起作用?

P.S。我做了以下事情,没有帮助:

  • 更新为git v.2.1.3;
  • 确保我只有一个遥控器;
  • 使用git fetch origin
  • 获取远程分支

更新其中一台计算机上运行的信息git checkout -b foo为false。检查本地分支以跟踪远程的正确命令是git checkout foo,而不是-b

1 个答案:

答案 0 :(得分:1)

检查git版本是否较旧版本。

Git的最新版本应始终使用git checkout -b创建跟踪分支:

  

如果找不到<branch>但是在一个具有匹配名称的遥控器(称为<remote>)中确实存在跟踪分支,则将其视为等效于

git checkout -b <branch> --track <remote>/<branch>

(或foo存在于多个遥控器中)
(或者您还没有从该遥控器获取,并且它没有检测到远程跟踪分支的存在origin/foo

然而,由于OP Alex Popov确认in the comments,它使用git checkout foo而非git checkout -b foo