gpt4 book ai didi

git - 尽管文件内容没有改变,但 git clone 后 zip 文件的 Sha256 哈希值不同?

转载 作者:行者123 更新时间:2023-12-02 20:36:25 28 4
gpt4 key购买 nike

我有一个问题,我的自动构建需要压缩目录的内容并对 zip 文件进行 Sha256sum。很简单。

但是,下次运行自动构建需要压缩相同的内容并对 zip 文件进行 Sha256sum,以便查看是否有任何源代码已更改。

在本地,我运行了以下命令,并每次生成具有相同哈希值的 zip(符合预期,因为我没有更改任何代码):

zip -q -r -X my-directory.zip my_directory/* --exclude ".gitignore" "requirements.txt" "*__pycache__/*" "*/\infrastructure/*"
sha256sum my-directory.zip | awk '{ print $1 }' > my-directory.zip.hash
cat my-directory.zip.hash

我的构建运行相同的命令,但在每次运行开始时,它都会从 GitHub check out 代码(因为构建在 Docker 容器内运行),这会导致不同的哈希值,尽管没有代码更改。

我通过删除存储库并重新克隆在本地重新创建了该问题。

有什么想法吗?我认为这是元数据或某种类型,但尝试了不同的排除命令,但没有成功。

最佳答案

通过 --exclude 手动排除模式似乎并不可靠。此外,您并没有排除 .git 文件夹,该文件夹未包含在 zip 文件中,但可能会以某种方式干扰哈希。

您应该正确配置 .gitignore 文件并使用 git archive。这是从 git 存储库导出文件的最佳方式。

尝试以这种方式改变您的工作流程:

git archive HEAD -o project-archive.zip
sha256sum project-archive.zip | awk '{ print $1 }' > project-archive.zip.hash

您将得到预期的结果。

关于git - 尽管文件内容没有改变,但 git clone 后 zip 文件的 Sha256 哈希值不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46999767/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com