使用现有的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账户。

🏷️

标签

➡️

继续阅读