2014-11-06 47 views
1

概括地說,我做了兩個混帳拉,我需要恢復到之前,我都做了。第一次拉我帶來了至少100個提交,所以我不能猜到我在提交什麼提交ID。我需要恢復我的最後兩個「混帳拉,」我不知道任何關於提交我需要

有什麼辦法,我直接撤消拉或以其他方式查找提交ID我是今天早上?

+1

您是否嘗試過'混帳reflog'? – 2014-11-06 00:35:45

+0

它似乎很接近,但它不提供我需要的信息。我在那裏看到的唯一提交ID太新了,無法滿足我的需求。我看到一個「拉:快進」,這可能是我需要恢復的一個,但它沒有給出任何ID – Dan 2014-11-06 00:46:33

+0

我正在閱讀日誌錯誤,我有我需要的東西。謝謝。 – Dan 2014-11-06 00:52:55

回答

3

git reflog會告訴你的操作的歷史記錄。每一行都以作爲操作結果的新提交的SHA哈希開始,即提交git移動到。在之前查找行,「拉」條目以及該哈希表是你在提交之前進行的提交。

在這個例子中,你會移動到「1234abc」與git checkout 1234abcgit checkout [email protected]{2}

c831d9e [email protected]{0}: commit: add new feature 
fe1c2f8 [email protected]{1}: pull: Fast-forward 
1234abc [email protected]{2}: commit: add new data 
39c842b [email protected]{3}: checkout: moving from master to feature 
aa0b4b7 [email protected]{4}: checkout: moving from master to redis_xvdc 
1
git reflog 

應打印是這樣的:

859af32 [email protected]{0}: pull: Fast-forward <--- the pull you did 
2bbb039 [email protected]{1}: <git command> <--- the point where you want to reset to 
.... 

然後你就可以恢復到所需的HEAD指針:

git reset (--hard) [email protected]{1} 
+3

與往常一樣,注意'reset --hard':它會覆蓋整個工作目錄,包括尚未添加到索引中的髒文件,而不會詢問。這是一個很好的工具,但不要使用它,除非你知道它的作用。 – amalloy 2014-11-06 01:36:29

相關問題