如何获取文件的Git提交哈希ID?恢复文件后遗忘哈希的解决办法
找回Git文件回滚对应的提交哈希 & 文件提交哈希获取方法
没问题,我来帮你搞定这个Git的小烦恼!
一、找回你刚才checkout的那个提交哈希
你现在的情况是已经把文件回滚到旧版本,但忘了对应的提交哈希,而且git status显示文件和HEAD版本有差异。可以按以下步骤操作:
先获取当前工作区文件的内容哈希
用git hash-object命令得到当前文件内容对应的Git对象哈希:git hash-object path/to/file这个命令会输出一个40位的长哈希,这是当前文件内容在Git对象库中的唯一标识。
查找包含该文件版本的所有提交
接着用这个哈希值去遍历所有分支的提交记录,找到所有曾经包含这个文件版本的提交:git log --all --find-object=<刚才得到的哈希值> -- path/to/file命令执行后会列出符合条件的提交,你要找的应该是时间最近的那一个(毕竟你刚执行完checkout操作)。
小提示:如果结果里有多个提交,看提交的时间戳和提交信息,就能快速定位你之前用的那个提交啦。
二、如何获取文件的提交哈希(日常场景)
根据不同的需求,有几种常用的方式:
获取文件最后一次修改的提交哈希
如果你想知道当前HEAD分支下,该文件最后一次被修改的提交哈希,用:# 完整哈希 git log -1 --format="%H" -- path/to/file # 短哈希(更简洁) git log -1 --format="%h" -- path/to/file获取文件在特定分支/标签下的最后提交哈希
比如要查看dev分支里该文件的最后提交:git log -1 --format="%H" dev -- path/to/file获取文件所有历史提交的哈希
想列出该文件所有被修改过的提交哈希(按时间倒序排列):git log --format="%H" -- path/to/file
内容的提问来源于stack exchange,提问作者MrLapDong
相关产品推荐
相关产品推荐

