2012-07-31 76 views
2

從遠程回購拉後,我的本地回購處於一個奇怪的狀態。Git似乎有從遠程拉,但日誌沒有提交承諾

git log不顯示來自遠程回購的提交。應該更改的文件保持不變。 git status顯示我在branch master(如預期的那樣)帶有乾淨的工作目錄。換句話說,從拉找不到任何證據。

但是,如果我從遠程執行特定的提交,則會顯示該提交的正確更改。 git show如何能正常工作,但我的回購沒有改變,並且log沒有顯示提交?

發生了什麼事?

回答

3

可能是那些提交的提交(作爲您中止或還原的前一個git pull的一部分),但不適用於本地master

+0

這些提交在HEAD/working tree/index中的某處嗎?那些承諾如何適用於當地的主人? – Noel 2012-07-31 21:44:52

+1

你可以嘗試從'origin/master'合併'git merge origin/master',但結果真的取決於你的具體情況:有'master'(你的「本地視圖」的那個分支)和'origin/master'(一個指向master分支的指針,因爲它在遠程存儲庫上)是否有分歧?即你是否向你的'主人'提交了任何變更集? – 2012-07-31 21:50:14

+0

要回答你的第一個問題,很可能這些提交在'git log origin/master'中。 – 2012-07-31 21:54:28

1

你的git pull失敗了,你很難重置。這意味着你回到了你所在的位置。但是git pull的一部分是git fetch。所以你實際上得到了遠程分支中包含的對象。爲了測試,你可以在

git log origin/master 

看看如果不告訴他們,做一個

git fetch 

這應該只是更新遠程跟蹤分支。看到什麼是你可以

git ls-remote origin 

遙控器上的(假設的起源是有問題的遠程名)

記得git pullgit fetchgit merge(或git rebase組合,如果你配置它是辦法)。