情况:我有一个来自 github 项目的 tar.gz 版本,但想弄清楚这是从哪个提交中获取的。它似乎没有被标记,或者从提交消息本身来看是显而易见的。
所以我可以计算文件的 sha1,但想知道这些文件属于哪个提交?
召唤 git 向导!
由于 git 存储的哈希不仅仅包括文件内容(理论上,哈希冲突无论如何都会发生),为了真正确定您拥有正确的文件版本,您需要比较内容。
for rev in $(git log --format=%H -- /path/to/file); do
git diff --quiet $x:/path/to/file my-current-file;
if [[ $? -eq 0 ]]; then
echo $x;
fi
done
英语:以相反的顺序迭代更改文件的修订版本。对于每个此类修订,将文件版本与树外文件进行比较。如果两个文件相同,则打印修订哈希值。
如果你想这样做整个压缩包,您可以对整个树而不是单个文件执行相同但不同的操作(并省略文件路径作为参数git log
) - 使用您喜欢的任何容忍差异选项。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)