因爲它找到小於一個
都能跟得上:因爲它找到更多於一個匹配的遠程分支,這意味着remote_find_tracking()
對於給定的本地分支REF返回多於一個跟蹤分支的功能。
是some_remote_branch
不是已經您的當地分支機構跟蹤?
(git config -l
將允許您檢查您目前設置的內容)。
(一git branch -r
還可以幫助列出當前遠程跟蹤分支)。
遠程分支,我認爲有一些不同的遠程跟蹤分支。
錯誤,如圖所示由this thread:
遠程分支是 「真正的」 遠程跟蹤分支。您不必在本地提交它們,它們本質上是隻讀的遠程存儲庫中正在發生的事情的副本。
如果你嘗試'git-checkout'一個遠程追蹤分支,你會得到一個分離的HEAD。
本地分支:
您可以提交更改的分支。或者,可以將分支配置爲「跟蹤」您的一個遠程跟蹤分支。這意味着沒有參數的'git-pull
'(當您的本地分支被簽出時)將自動爲'git-fetch
',然後'git-merge
'爲遠程跟蹤分支。
現在:
它是git-fetch
工作,以更新遠程存儲庫中找到的任何變化遠程跟蹤分支。
Git-pull
運行git-fetch
然後運行git-merge
來更新當前檢出的分支。
的問題是,對於git的合併:
發生這種情況時,git-merge
必須決定哪些remote-tracking-branch
合併到當前已簽出的本地分支。
您可以使用--track選項設置在此情況下將選擇哪個remote-tracking-branch
。
--track
建立一個本地以下分支指遠程的分支,不到跟蹤分支
Consider thatremote_find_tracking()
需要一個遙控器,並與SRC一的Refspec填滿,之後返回給定的Refspec填充它的dst,如果爲遙控器配置了適當的跟蹤,意味着git。
/*
* For the given remote, reads the refspec's src and sets the other fields.
*/
int remote_find_tracking(struct remote *remote, struct refspec *refspec);
可能它認爲它已經有一個本地跟隨分支匹配some_remote_branch
。你有任何本地分公司的同名嗎?反過來:你的當前分支有一個類似名稱的遠程分支,這使得它成爲任何git-merge
的自然人選:試圖使其跟蹤另一個遠程分支將使git-merge
無法選擇哪個本地分支來更新/合併遠程的更改。
剛剛添加了一些術語和一些建議(只是導致探索,但沒有確定性),以解釋當前的情況。 – VonC 2009-09-08 21:51:56
感謝您的反饋,但是您是否真的找到了錯誤信息背後的原因? – VonC 2009-09-09 16:45:05