重置提交的完整提交信息是什么?

4

我如何获取硬重置操作后提交的完整信息?

可以使用 git reflog 来完成此操作,但是是否还有其他方法?


1
如果您确实删除了此提交,则使用reflog是一个不错的方法。 - Tim Biegeleisen
1个回答

7

你可以使用git log -g来遍历你以前的HEAD,但它不会提供关于HEAD为什么移动的信息。

你可以直接从.git/logs/HEAD读取日志。这不会比git reflog显示的内容多,但更容易开发工具来查找重置的ID。

git reflog将按顺序显示所有以前的HEAD(你检出过的提交),并说明HEAD移动的原因。git reflog使用与git log相同的选项。例如,你可以使用git reflog --pretty=medium获得更多上下文信息,以查看完整的提交消息。然而,可能更容易从git reflog中获取提交ID,然后使用git log <该ID>获取提交消息。

重置应该很容易被发现。例如,这是一个git reset --hard HEAD^1

70cc722 (HEAD -> master) HEAD@{0}: reset: moving to HEAD^1
5cbd5ea HEAD@{1}: reset: moving to HEAD

然后,您将检出该行的提交ID。 git checkout 5cbd5ea - questionto42
2
@questionto42standswithUkraine 不需要检查它以获取提交消息,只需要 git log 5cbd5ea - Schwern
我没有从你的回答中读到这个,尽管我理解在通过 git log -g 回溯时间间接地表达了。我之前没有想到会这么容易,很好。 - questionto42

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接