2014-11-08 85 views
3

從git gui開始,我使用gitk到git reset -hard進行一些提交,然後纔開始執行,因爲我需要測試一切是否在更改之前運行。Git reset hard and going back

因爲我甚至有一些未提交的更改,我爲了保存它們並能夠在返回到上次提交時重新應用它們。

的問題是,gitk沒有顯示我的承諾樹的頂部的話(前提交是當前一個和我沒有看到它上面的任何承諾)

這是因爲有時我最後一次使用git,但我認爲我可以使用git reset -hard將當前代碼帶到先前版本,然後將git重置爲舊版本。

如何檢索舊HEAD和版本I git reset -hard之間的所有提交? 請告訴我有某種方式。

我使用Eclipse作爲開發工具(如果我需要使用它的緩存)

+0

我認爲'git checkout'會爲你提供比在這裏重置更好的服務。 – jthill 2014-11-08 13:38:34

回答

3

你也可以工作,如果你已經先製作一個新的分支,第一git的復位 - 硬之前。

因爲git reset moved your current branch back,而這些提交不再受任何分支引用(而不再可見)

您需要退回到命令行,並嘗試:

git reset --hard ORIG_HEAD 
# or 
git reset --hard [email protected]{1} 

ORIG_HEAD or [email protected]{1}應該有您在第一次重置之前的SHA1。
如果不是,git relog可以幫助(這是什麼[email protected]{1}應列入)。

不是,如在「ORIG_HEAD and FETCH_HEAD from history view in Eclipse」中暗指的那樣,您應該能夠在Eclipse的「History view」中看到ORIG_HEAD

+0

它工作。謝謝。我很害怕我失去了所有的工作。在仔細檢查命令做什麼之前,做這樣的事情對我來說很愚蠢。我仍然無法接受你的答案,但是10分鐘限制到期的那一刻我會這樣做。 你能否建議我們今後應該使用什麼命令來將當前代碼帶入先前的狀態?我應該分支,重置然後刪除分支嗎? – 2014-11-08 12:10:05

+0

通過創建並切換到新的分支(甚至是臨時分支),最好將當前狀態轉換爲以前的狀態:http://wiki.eclipse.org/EGit/User_Guide#Branch_Creation_Dialog – VonC 2014-11-08 12:12:37

+0

檢查'git reflog'應該完成在執行'git reset --hard HEAD @ {n}'之前'。這樣你就可以確定你真正想要哪個參考。 – jcm 2014-11-08 12:38:52

相關問題