"git show --show-signature" 到底验证了什么?

What exactly does "git show --show-signature" verify?

克隆远程 git 存储库并发布 git show --show-signature 后,它说签名是正确的。然后我更改了一些文件并测试了相同的命令,它仍然说签名是好的。

上面的命令到底检查了什么?验证克隆的正确方法是什么 git 是开发者的意思?

提交不会改变。 git status 将报告您的工作树的状态; git show 用于向您显示存储库内容。

git show --show-signature 完全按照联机帮助页中的说明进行操作:

--show-signature

Check the validity of a signed commit object by passing the signature to gpg --verify and show the output.

您之前必须导入回购作者的 public 密钥,以便 GPG 可以知道在哪里寻找它。您需要阅读教程才能 了解 GPG 的工作原理以充分理解它的工作原理。

现在回答你问题的第二部分,git show 显式提交 SHA-1 或对象名称通常适用于当前 HEAD。如果你只是修改了工作副本中的一些文件但是 没有提交更改然后 HEAD 和您的所有其他提交 存储库将保持不变,因此 git show --show-signature 将向您显示与全新克隆后完全相同的内容 存储库。如果您决定提交您的更改,您将移动 你的 HEAD 一次提交但不会修改之前的 HEAD 所以 git show --show-signature HEAD^ 仍然会显示一切正常。