使用现有的GPG密钥签署Git提交
原文英文,约300词,阅读约需1分钟。
📝
内容提要
本文介绍了在Git中使用GPG密钥进行签名的方法,包括检查和列出GPG密钥、配置Git使用特定的GPG密钥、手动签名提交、验证签名以及推送签名的提交到远程仓库并添加GPG密钥。
🔎
延伸解读
签名提交的验证与信任
使用 git log --show-signature 可以验证提交的签名,输出会显示签名是否有效以及签名者信息。这有助于确保提交来自可信来源,防止篡改。但验证依赖于本地 GPG 密钥环中拥有签名者的公钥,否则无法验证。
全局与仓库级配置的取舍
你可以为特定仓库或全局设置签名密钥和默认签名。仓库级配置只影响当前项目,适合不同项目使用不同密钥的场景;全局配置则对所有仓库生效,方便但可能不适用于所有情况。根据实际需求选择。
密码保护与缓存机制
如果 GPG 密钥受密码保护,每次签名提交时都会提示输入密码,这可能影响频繁提交的效率。文章提到未来会更新如何修改密钥缓存以避免重复输入,目前需手动输入。
远程仓库的密钥配置
推送签名提交后,若使用 GitHub 或 GitLab,需将 GPG 公钥添加到账户设置中,否则远程仓库可能无法验证签名。具体添加方法可参考平台文档。
❓
Q&A
如何检查GPG是否已安装?
使用命令:gpg --version。
如何列出我的GPG密钥?
使用命令:gpg --list-secret-keys --keyid-format LONG。
如何配置Git使用特定的GPG密钥?
使用命令:git config user.signingkey ABCDEF1234567890,替换为你的GPG密钥ID。
如何手动签署Git提交?
使用命令:git commit -S -m 'Your commit message'。
如何验证我的提交是否已签名?
使用命令:git log --show-signature。
如何将签名的提交推送到远程仓库?
使用命令:git push origin main,并确保GPG密钥已添加到GitHub或GitLab账户。
🏷️