git - 无法建立远程跟踪分支

时间:2016-12-28 13:53:18

标签: git

我已经阅读了这篇文章How do I check out a remote Git branch?十几次,但仍然没有解释我所看到的内容。

我不是故意在这里探索任何高级用法 - 我正在尝试设置最基本的可能方案来尝试git远程分支,所以我创建了一个带有master和1.0分支的repo ,并将其克隆到另一个回购。现在在克隆的回购中:

$ git branch -a
* master
  remotes/origin/1.0
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

(FWIW“主人”为绿色,其他行为红色,除了“ - > origin / master”为白色)

就我所知,这一切看起来都很合理。但是如果我尝试以下任何一个命令:

git checkout 1.0
git checkout origin/1.0
git checkout remotes/origin/1.0

我收到“分离的HEAD”消息,所以我认为这是错误的做法。我读过的所有内容都告诉我,这应该创建了一个跟踪分支。 (显然我输入了'git fetch',直到我脸色都是蓝色的)

如果我尝试

git checkout -b 1.0 origin/1.0

我是否使用--track,它似乎创建了一个跟踪分支(已通过git branch -vv验证),但当我尝试推送该跟踪分支时,我收到错误error: src refspec 1.0 matches more than one.

我理解该消息的含义,并且在某些奇怪的情况下可以使用同名的不同分支,但我认为在我的情况下(我重复的是设置最简单的“vanilla”场景)这不是解决问题的正确方法。

1 个答案:

答案 0 :(得分:2)

从错误消息:

 error: src refspec 1.0 matches more than one.

我们可以假设您可能以某种方式创建了多个具有相同名称的分支或具有相同名称的标记。

检查只有一个名为“1.0”的分支的git branch -a。并使用git tag只是为了确保您没有同名的标签。

如果您可以选择“开始清理”再次克隆存储库,那么使用git checkout -b 1.0 origin/1.0是创建名为“1.0”的本地分支的正确方法,该分支跟踪具有相同名称的远程分支。然后git push origin 1.0是你想用来推动你的变化的。