我刚刚克隆了一个回购并在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'.
错误。
答案 0 :(得分:2)
我认为,错误的可能是,您有一个名为origin/master
的本地分支。尝试运行git branch
。如果那里列出了origin/master
分支,那就是它。
看看你是否应该删除该分支。如果您不能或不想,请改为运行git branch --set-upstream develop remotes/origin/develop
。
答案 1 :(得分:1)
我确认origin/develop
是本地分支的名称,而不是对远程分支的引用(如remotes/origin/develop
)
分支的名称中可以有一个'/':它们被称为“分层分支名称”(参见“Using the slash character in Git branch name”)。
如this thread中所述,这会阻止您选择“开发”作为分支名称。你需要重命名
git branch -m origin/develop develop
git branch --set-upstream develop origin/develop