如何使“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?例如,我想摆脱CheckoutUpdating HEAD

我不明白如何在不过滤输出的情况下实现这一目标。
Jefromi赞同这一意见:

git reflog ... | grep -v 'checkout:\|updating HEAD' 

而且你搞清楚之后,你希望看到什么承诺,你就可以使用正常登录:

git log [email protected]{7} 
# or 
git log <SHA1> 
+0

有没有一种方法可以让我强制'git log'来显示它? – Tower

+0

@rFactor:我已经更新了关于'git log'的答案。 – VonC

+0

有趣。还有一件事,我可以过滤除合并和提交reflogs之外的所有内容吗?例如,我想摆脱Checkout和更新HEAD。 – Tower