情况:我有一个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
Run Code Online (Sandbox Code Playgroud)
英语:以相反的顺序迭代更改文件的修订版本。对于每个此类修订,将文件版本与树外文件进行比较。如果两个文件相同,则打印修订哈希值。
如果您想对整个 tarball执行此操作,您可以执行相同的操作,但比较整个树而不是单个文件(并省略文件路径作为 的参数git log) - 使用您喜欢的任何宽容的 diff 选项。
| 归档时间: |
|
| 查看次数: |
1071 次 |
| 最近记录: |