2013-10-30 60 views
3

這prolebme主要是因爲我在網吧惡劣的WiFi連接。 我做了我的本地回購了一些變化,eveyr時間我做了一個我會適時推進。 最新的一個我做的互聯網連接和關閉,所以才推和git的日誌將顯示提交,但git的狀態顯示我的本地和遠程之間的差異。Git的,失去了我的變化

自從我上次推是成功的,我想我會做這個

git fetch origin 
git reset --hard origin/master 

但廢話,這擺脫了所有的承諾我今天沒有和頭是現在有些犯我昨天做的,當我去bitbucket看看它沒有的回購,甚至不顯示今天的變化。

有人請告訴我,我不只是擰自己了嗎?有沒有解決方案?

+1

讓我們清楚:混帳沒有丟失所做的更改;你失去了你的改變。 ;) – TheBuzzSaw

+0

@TheBuzzSaw:不需要說教:-)今天我也遇到過同樣的事情。儘管我使用了smartgit,但是在我從遠程存儲庫中取出後,突然間我的本地提交消失了。它從未發生過。幸運的是,我發現這個線程,我設法得到提交,並與遠程進行合併。 – costa

回答

7

檢查git reflog看到提交散列你所有的近期活動。

Git爲垃圾收集可達提交至少2周(除非你明確地告訴它)

另外,git log -g可以幫助你:

-g, --walk-reflogs

代替行走提交祖先鏈,從 步行reflog條目最近一個到舊的。

+0

是的,我只是做了一個git reflog,然後提交就在那裏,現在只是讓我不要再擰我自己了,我做錯了什麼?以及我需要提交散列後應運行什麼命令。 – Eddie

+0

你可以'git reset --hard'來進行任何提交,而不僅僅是命名分支。你也可以合併「失去」提交哈希 – Gareth

+0

至於你做錯了什麼,我猜想「我最後一次推動是成功的」可能並不是真的,你錯過了某處的錯誤消息。不幸的是,如果沒有看到更多的實際終端會話 – Gareth