Git 如何在创建同名本地分支时自动跟踪远程分支?

Git 如何在创建同名本地分支时自动跟踪远程分支?,git,settings,git-remote,Git,Settings,Git Remote,我在几台机器上使用Git。我必须有一个在其中一台机器上延迟的配置,因为在场景中,我在master上,有一个远程分支origin/foo,并且想要创建一个本地分支foo,跟踪远程分支,会发生以下情况: 在大多数机器上,我需要使用的命令是(在master上时): 但是,在其中一台机器上,如果我只使用: git checkout -b foo 在这两种情况下,我都会 Branch foo set up to track remote branch foo from origin. 但是,第

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

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

  • 但是,在其中一台机器上,如果我只使用:

    git checkout -b foo
    
在这两种情况下,我都会

Branch foo set up to track remote branch foo from origin.
但是,第二个命令只在我的一台机器上起作用,在其余机器上它只检查本地分支
foo
。为什么会出现这种情况?是哪种环境使其工作

另外,我做了以下几件事,但都无济于事:

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

更新其中一台机器上的信息
git checkout-b foo
无效。签出本地分支以跟踪远程分支的正确命令是
git checkout foo
,不带
-b

检查git版本是否为旧版本

Git的最新版本应始终创建具有以下内容的跟踪分支:

如果未找到具有匹配名称的
,但恰好在一个远程(称之为
)中存在跟踪分支,则视为等同于

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


但是,它使用的是
git checkout foo
,而不是
git checkout-b foo
,这一点得到了证实。

唉,将
git
从1.9.1更新到2.1.3对我没有帮助,我更新了我的问题。这是一种奇怪的问题…@AlexPopov是你的.git/refs/remotes/origin文件夹中的
foo
分支吗?@AlexPopov的名称非常相同(例如没有尾随空格)?@alexpov你能尝试(在新的克隆中)a
git checkout foo
(而不是
git checkout-b foo
)看看这是否更有效?没有尾随空格。是的,让我用新的克隆人试试。
Branch foo set up to track remote branch foo from origin.
git checkout -b <branch> --track <remote>/<branch>