概括地說,我做了兩個混帳拉,我需要恢復到之前,我都做了。第一次拉我帶來了至少100個提交,所以我不能猜到我在提交什麼提交ID。我需要恢復我的最後兩個「混帳拉,」我不知道任何關於提交我需要
有什麼辦法,我直接撤消拉或以其他方式查找提交ID我是今天早上?
概括地說,我做了兩個混帳拉,我需要恢復到之前,我都做了。第一次拉我帶來了至少100個提交,所以我不能猜到我在提交什麼提交ID。我需要恢復我的最後兩個「混帳拉,」我不知道任何關於提交我需要
有什麼辦法,我直接撤消拉或以其他方式查找提交ID我是今天早上?
git reflog
會告訴你的操作的歷史記錄。每一行都以作爲操作結果的新提交的SHA哈希開始,即提交git移動到。在之前查找行,「拉」條目以及該哈希表是你在提交之前進行的提交。
在這個例子中,你會移動到「1234abc」與git checkout 1234abc
或git 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
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}
與往常一樣,注意'reset --hard':它會覆蓋整個工作目錄,包括尚未添加到索引中的髒文件,而不會詢問。這是一個很好的工具,但不要使用它,除非你知道它的作用。 – amalloy 2014-11-06 01:36:29
您是否嘗試過'混帳reflog'? – 2014-11-06 00:35:45
它似乎很接近,但它不提供我需要的信息。我在那裏看到的唯一提交ID太新了,無法滿足我的需求。我看到一個「拉:快進」,這可能是我需要恢復的一個,但它沒有給出任何ID – Dan 2014-11-06 00:46:33
我正在閱讀日誌錯誤,我有我需要的東西。謝謝。 – Dan 2014-11-06 00:52:55