2
如果我重置爲一個變更集,比如說HEAD^
,那麼git log --all
不再顯示比當前變更集更新的變更集。有沒有辦法讓它顯示?如何使「git log」顯示比你重置的地方更新的變更集?
如果我重置爲一個變更集,比如說HEAD^
,那麼git log --all
不再顯示比當前變更集更新的變更集。有沒有辦法讓它顯示?如何使「git log」顯示比你重置的地方更新的變更集?
git reflog
在重置之前,應顯示之前由HEAD引用的提交。
(git reflog
, your safety net)
將「Undoing a git reset --hard HEAD~1」作爲具體示例。
您也可以嘗試,單獨git log
,該-g
選項:
-g, --walk-reflogs
代步提交祖先鏈,走引用日誌條目從最新的內容向舊的
後所有,git reflog
可以由git log -g --oneline
完成。
git log --walk-reflogs master # show reflog entries for master
的OP rFactor補充說:
我可以過濾掉一切,除了合併和提交reflogs?例如,我想擺脫
Checkout
和Updating HEAD
。
我不明白如何在不過濾輸出的情況下實現這一目標。
Jefromi贊同這一意見:
git reflog ... | grep -v 'checkout:\|updating HEAD'
而且你搞清楚之後,你希望看到什麼承諾,你就可以使用正常登錄:
git log [email protected]{7}
# or
git log <SHA1>
有沒有一種方法可以讓我強制'git log'來顯示它? – Tower
@rFactor:我已經更新了關於'git log'的答案。 – VonC
有趣。還有一件事,我可以過濾除合併和提交reflogs之外的所有內容嗎?例如,我想擺脫Checkout和更新HEAD。 – Tower