我在遥远的过去某个时候从存储库中获取了一个文件。有没有办法告诉这个文件与什么提交相关?
我很清楚提交历史。那不是我要问的。我要求查找与该特定文件版本关联的提交是什么。我不知道上一次提交发生了什么变化,也不知道下一次提交发生了什么变化,所以简单的历史记录并不能解决问题。
蛮力检查是系统地检查每个提交并将回购中的文件与我拥有的过时副本进行比较,直到找到匹配的提交。
git log
有一个--find-object=<hash>
选项。
您可以计算该文件的确切版本的哈希值,并询问 git 什么提交添加或删除了具有该特定哈希值的文件:
hash=$(git hash-object that/file)
# note: you can run 'git hash-object' and 'git log --find-object' on
# two different machines
git log --oneline --find-object=$hash --all