当我在github上点击一个包的"download zip“按钮,或者通过https://github.com/{username}/{projectname}/archive/{sha}.zip,下载一个特定的提交文件时,我电脑上的文件的sha1sum与网页上显示的不一致。
为什么会发生这种情况?sha1sum不匹配是不安全的。如何使用可验证的hashsum下载提交的完整源代码,而无需使用"git“命令或在github上创建帐户(因为我只想下载一次库供本地使用,而不是编辑它)。
谢谢!
发布于 2013-08-31 02:54:56
正在使用以下url下载存储库源内容...
https://github.com/{username}/{projectname}/archive/{sha}.zip
...will使用以下url检索commit中包含的代码源
https://github.com/{username}/{projectname}/commits/{sha}
在检索到的存档上运行sha1sum将不会生成目标提交的sha。
一书的详细解释了Git依赖SHA-1散列来唯一标识其内部对象的方式。您将注意到,任何提交的sha将依赖于其父提交的sha (以及间接地依赖于其所有祖先的sha)。这意味着为了生成这样的sha,您将需要导致此提交的所有更改的全部历史记录。
为了安全地验证源代码没有被更改,并且与GitHub上显示的提交信息相匹配,除了克隆完整的存储库并运行以下命令之外,没有其他方法。此命令将使用提交的内容更新您的工作目录。
git checkout {sha}
如果git找不到与这个sha匹配的提交,该命令将失败。
https://stackoverflow.com/questions/18538487
复制相似问题