5

我刚刚克隆了一个 repo 并在 Git 中启动了一个新分支。我已经这样做了很多次,没有遇到任何问题。今晚当我尝试使用git branch --set-upstream develop origin/develop设置上游位置时,我收到了这个错误:

fatal: Ambiguous object name: 'origin/develop'.

四处阅读表明,这是由于在原点和远程/原点中都存在相同的分支名称。我不明白这两者之间的区别,以及为什么它们会以这种方式发生冲突。我输入git branch -a了 ,这是输出:

* develop
  master
  origin/develop
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/master

我对 和 之间的区别origin/develop以及remotes/origin/develop为什么会导致fatal: Ambiguous object name: 'origin/develop'.错误感到困惑。

4

2 回答 2

2

我认为,也许是错误地,您有一个名为origin/master. 尝试运行git branch。如果那里origin/master列出了一个分支,就是这样。

看看你是否应该删除那个分支。如果您不能或不想这样做,请git branch --set-upstream develop remotes/origin/develop改为运行。

于 2012-11-20T05:27:46.880 回答
1

我确认 origin/develop本地分支的名称,而不是对远程分支的引用(例如remotes/origin/develop

并且分支可以在其名称中包含“/”:它们被称为“分层分支名称”(请参阅​​“在 Git 分支名称中使用斜杠字符”)。
该线程中所述,这会阻止您选择“开发”作为分支名称。你需要重命名它

 git branch -m origin/develop develop
 git branch --set-upstream develop origin/develop
于 2012-11-20T07:28:12.117 回答