2011-01-22 23 views
7

的所有歷史比方說,我目前的git日誌看到的git

commit3

commit2

commit1

我的頭復位到commit2。

現在我想回去提交3,但我忘記 commit3的sha-1,所以我想看看日誌,但「git log」只會顯示commit2,commit1,我的問題是如何重置爲提交3還是讓日誌顯示也提交3現在?

感謝

回答

10

使用git reflog找到舊的參考,並直接傳遞給git log。請注意,reflog會定期清除,並且舊提交最終將被刪除,除非它們是分支的一部分 - 如果要撤消提交但將其保留在歷史記錄中,請使用git revert撤消它們而不將其從歷史記錄中刪除。

+0

或者,如果它的出版,只是創建一個不同的分支在承諾保留。 – Cascabel 2011-01-22 18:51:05

4

命令

git reflog 

會告訴你,一直是HEAD SHA值的列表。換句話說,它顯示了一個提交列表,它們已經被檢出。在該列表中,您還將看到語法[email protected]{1},[email protected]{2}等。這是解決先前HEAD的一種方法。

我的情況git checkout [email protected]{1}應該檢出commit3,因爲它是當前HEAD之前的HEAD。

0

有兩種方法: -

經典:混帳引用日誌

大圖片:) git的日誌--graph --decorate --oneline