2

出于分析目的,我想运行以下命令并查看已在相当大的存储库中签署了哪些提交:

git log --pretty="%h %G?"

根据Git docs%G?占位符可以返回:

  • G一个好的(有效的)签名
  • B对于一个糟糕的签名
  • U用于具有未知有效性的良好签名
  • X一个好的签名已经过期
  • Y由过期密钥生成的良好签名
  • R由撤销的密钥制作的良好签名
  • E如果无法检查签名(例如缺少密钥)
  • N因为没有签名

预期的结果是获取G每个提交的状态,如VerifiedGitHub 中所示。但是,我得到的主要是E状态。

git verify-commit commit-sha在带有E状态输出的提交上:

gpg: Signature made Wed  17 June 13:19:22 2020 EEST
gpg:                using RSA key C90455E28OCA2B4DAD319037E77216ECEABAF951
gpg: Can't check signature: No public key

我已经完成了以下gpg设置:

git config --global gpg.program $(which gpg)
curl https://github.com/web-flow.gpg | gpg --import
gpg --edit-key noreply@github.com (where I put `trust` and gave 6 - ultimate)
gpg --lsign-key noreply@github.com

似乎我获得git log状态的唯一提交G是通过 GitHub 的 UI 完成的提交,因为它的密钥已成功插入gpg.

我是否应该抓取并获取 repo 中所有贡献者的所有公钥(例如通过使用他们的电子邮件),然后将它们插入gpg?实际上,在本地查看 GitHub 中显示的所有提交的签名的最简单方法是什么?

4

1 回答 1

0
于 2020-06-22T13:31:54.037 回答