停止輸入git pull origin master
。這指示git將原始倉庫中的主分支的內容拖入本地分支,完全繞過遠程跟蹤分支。相反,你應該輸入git pull
。這將從遠程倉庫中取出branch.master.merge
中的分支(假設檢出「主」)並使用它更新遠程跟蹤分支,然後它將該遠程跟蹤分支合併到本地分支中。
爲了闡明它的工作原理,git pull <args>
運行git fetch <args>
,然後使用git-merge將提取的分支合併到當前分支中。如果你指定git fetch
,git將獲取默認遠程並更新遠程跟蹤分支,此時git-pull將合併到正確的分支中。但是,如果你指定git fetch origin master
,git將獲取原始回購的主分支並將其存儲在FETCH_HEAD中,而不更新遠程跟蹤分支。你可以通過輸入git fetch origin master
來驗證這一點(假設你沒有遠程提交)。的獲取最終的結果應該是像
* branch master -> FETCH_HEAD
線這就告訴你,遠程分支的「主人」是獲取並存儲在FETCH_HEAD。在另一方面,如果你只需鍵入git fetch origin
,你應該會看到更多的東西一樣
* branch master -> origin/master
這告訴你,遠程分支的「主人」是獲取並存儲在本地的遠程跟蹤分支「origin/master的」。
迅速工作,凱文! – Abizern 2011-02-08 21:40:21