2011-02-08 22 views
0

最近,如果我這樣做:
1.混帳推起源主(我的筆記本電腦)
2.混帳拉主產地(在我的Mac)
3. git的狀態(在我的Mac上)使用Git

我看到'你的分支在6次提交'之前是'origin/master''。由於我沒有在Mac上提交任何提交,這似乎是一個錯誤;或者我不太明白的東西。

如果我再做:
4.混帳推主產地(在我的Mac)

產地/主消息的提前消失。

注意,在上面的步驟,我並沒有提交/ Mac上的修改,步驟1 & 2.

它的發生所有的時間在剎那之間 - 我應該擔心的,還是有合理的解釋?

回答

8

停止輸入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的」。

+0

迅速工作,凱文! – Abizern 2011-02-08 21:40:21

0

只需使用混帳推,但配置之前

混帳配置 - 全球push.default匹配/上游