我使用git checkout commit_hash path/to/file
将文件回滚到旧版本。
之后,我忘记了用于检索此文件的提交哈希ID。我使用git status path/to/file
,它显示此文件已被修改,即使我对此文件没有任何操作(我认为它与HEAD相比)。
有没有办法获取此检索文件的提交哈希ID?
答案 0 :(得分:1)
您可以使用
git log filename
它会显示从最新开始的文件日志。如果忘记了,可以使用shell history命令。假设它不太老。
答案 1 :(得分:1)
尝试命令history | grep path/to/file
。
由于可能有许多提交保持相同版本的path/to/file
,因此通过git命令的结果不够精确。这是其中一次尝试。
git hash-object path/to/file
你会得到一个哈希值($ hash)。它是path/to/file
版本的blob名称。
for commit in $(git rev-list --all --reflog);do
git ls-tree -r $commit -- path/to/file | if grep $hash;then echo $commit;fi
done
所有候选人都将被打印出来,你必须在他们的记忆中找出所有候选人。也许then git log -1 $commit
会使其比then echo $commit
更容易识别。