Authentication “究竟是什么?”;git show--显示签名”;验证

Authentication “究竟是什么?”;git show--显示签名”;验证,authentication,digital-signature,git,Authentication,Digital Signature,Git,克隆远程git存储库并发出git show--show签名后,它说签名是好的。然后我更改了一些文件并测试了相同的命令,它仍然说签名是好的 上面的命令具体检查什么?验证克隆git是否符合开发人员的意思的正确方法是什么?提交不会更改git status将报告工作树的状态git show用于向您显示存储库内容。git show--show signature完全按照其手册页中的说明执行: --签名 通过将签名传递给gpg来检查签名提交对象的有效性——验证并显示输出 您之前必须导入了回购作者的公钥,以便

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


上面的命令具体检查什么?验证克隆git是否符合开发人员的意思的正确方法是什么?

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

git show--show signature
完全按照其手册页中的说明执行:

--签名

通过将签名传递给gpg来检查签名提交对象的有效性——验证并显示输出

您之前必须导入了回购作者的公钥,以便
GPG
我知道在哪里可以找到它。你需要通读一本教程来学习 了解
GPG
的工作原理,以全面了解其工作原理

现在来看问题的第二部分,
git show
不带 显式提交SHA-1或通用工程中的对象名
头部
。如果您只是修改了工作副本中的一些文件 没有提交更改HEAD和您的中的所有其他提交 存储库将保持不变,因此
git show--show签名
将向您展示与新克隆后完全相同的
存储库。如果您决定提交更改,您将移动

您的
HEAD
提交一次,但不会修改以前的HEAD,因此
git show--show signature HEAD^
仍会显示一切正常。

您说:
git show没有显式提交SHA-1或对象名称,在当前HEAD的常规工作中。
我应该在哪里查找SHA-1或对象名称?使用它们的语法是什么?我也不明白你答案的最后一部分:
如果你决定提交你的更改,你会将你的头向上移动一次提交,但不会修改以前的头,所以git show--show signature HEAD^仍会显示一切正常。
你知道吗
git
SHA-1
是一个十六进制字符串,显示在
git log
中每个提交的顶部。它模糊地标识存储库中的每个提交
HEAD
是当前签出的
SHA-1
的同义词
git show
还可以显示除
SHA-1
之外的其他对象,请参见
man gitrevisions
HEAD^
表示以前的提交。谢谢。最后一次:如果我克隆了一个存储库,然后通过git show--show signature检查它的真实性,并收到了一个好的签名,那么我能确定我收到的是开发者的意思,而不是服务器的意思吗,等等?通过使用
git show--show signature
您只能检查存储库中的最后一次提交是否由作者签名,当然,除非他的密钥被盗。使用git log--show signature
检查所有提交。