git 存档输出是否应该通过 git 版本进行位重复?

Is git archive output supposed to be bit-repeatable through git versions?

我正在使用 git archive 生成一个文件,稍后对该文件进行哈希处理,以根据预存储的哈希值检查完整性。但是我没有在任何地方看到 git archive 是为了位可重复性,所以我担心 git 本身、tar 或其他一些内部结构的任何未来变化可能会突然导致不同的存档从同一个存储库中生成。

我是对的,这不是 git archive 的预期用途?或者我可以这样放心使用吗?

这不是 git archive 的预期功能。生成的 tar 存档之前已更改以修复错误。尽管如此,仍然有一些人试图依赖它,包括 kernel.org,但是当 Git 更新时他们的系统已经崩溃。我强烈建议不要这样做。

任何使用压缩的东西(包括 gzipped tar 存档和 zip 文件)本质上都是不可复制的,因为压缩可以根据需要在 zlib 或 gzip 版本之间改变。