出于分析目的,我想运行以下命令并查看已在相当大的存储库中签署了哪些提交:
git log --pretty="%h %G?"
根据Git docs,%G?
占位符可以返回:
G
一个好的(有效的)签名B
对于一个糟糕的签名U
用于具有未知有效性的良好签名X
一个好的签名已经过期Y
由过期密钥生成的良好签名R
由撤销的密钥制作的良好签名E
如果无法检查签名(例如缺少密钥)N
因为没有签名
预期的结果是获取G
每个提交的状态,如Verified
GitHub 中所示。但是,我得到的主要是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 中显示的所有提交的签名的最简单方法是什么?