2012-11-20 48 views
4

我剛剛克隆了一個回購協議,並在Git中開始了一個新分支。我已經做了很多次,沒有遇到問題。今晚,當我嘗試使用git branch --set-upstream develop origin/develop設置上游位置,我得到這個錯誤:原產地/,遙控器/原產地/ Git混淆

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/developremotes/origin/develop之間什麼,以及爲什麼會引起fatal: Ambiguous object name: 'origin/develop'.錯誤。

回答

2

我認爲,也許你錯了,你有一個叫origin/master的本地分支。嘗試運行git branch。如果有origin/master分支在那裏列出,就是這樣。

看看你是否應該刪除該分支。如果您不能或不想,請改爲運行git branch --set-upstream develop remotes/origin/develop

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