这是该 Git 仓库中一个文件的(以前的)内容吗?

3

我有一个文件,我发现它在那里躺着。我想知道它是否来自特定的 git 存储库,在某个时间点。精确匹配就足够了。我该如何做?


精确匹配比较 - 比较md5sum足够了吗?如果是,您可以像这样使用另一个SO答案中的脚本git-dump.sh <FILE>然后检查任何输出文件是否与原始文件的md5sum匹配。 - Arkadiusz Drabczyk
@ArkadiuszDrabczyk Git内部已经有所有文件的SHA1哈希值了吗? - Filip Haglund
1
可能是重复的问题: 哪个提交包含了这个blob? - Denys Séguret
2
@DenysSéguret 我认为这不是完全重复,链接的问题是以给定的哈希值开始的。您在此处的答案明确指出我们需要生成文件的哈希值以及如何执行该操作。 - Melebius
1个回答

3

您可以使用以下方式从文件生成SHA:

git hash_object <file path>

这将为您提供一个哈希值,例如:

这样的哈希值:

c675fb0fe881673391f078c37e594ec7a51aa222

您可以使用类似此命令(有多种变化)列出所有(可达到的)Blob和文件名。

通过这种方式,您可以使用grep查找您的哈希值:

git rev-list --objects --all | git cat-file --batch-check='%(objectname) %(objecttype) %(rest)' | grep '^[^ ]* blob' | cut -d" " -f1,3- | grep c675fb0fe881673391f078c37e594ec7a51aa222

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接