在 Windows 上安装 Git 并启用 GPG 签名

使用 Winget 快速配置 Git 环境

安装 Git

1winget install Git.Git

安装 Gpg4win

1winget install GnuPG.Gpg4win

生成&导入 GPG 密钥

生成密钥

Tips: 不要加密,否则 VS Code 的 Git 扩展无法进行提交

1gpg --full-generate-key
2# or
3gpg --gen-key

导入密钥

1gpg --import private_or_public.key

配置 Git

基本配置

设置 用户名邮箱 (需要和注册平台时用的邮箱对应)

1git config --global user.name "username"
2git config --global user.email "user@example.com"

启用签名

  1. 使用 gpg --list-secret-keys --keyid-format=long 列出所有密钥
  2. 记下 sec 的第二行密钥,并记录为 ${KEY_ID}
  3. 设置 git 签名所使用的密钥 git config --global user.signingkey ${KEY_ID}
  4. 使 Git 默认使用 GPG 签名 git config --global commit.gpgsign true
  5. 使用 gpg --armor --export ${KEY_ID} 导出公钥并添加至平台

常见错误

无法为数据签名

症状:

1# 报错:
2error: gpg failed to sign the data
3fatal: failed to write commit
4# 或者
5错误:gpg 无法为数据签名
6致命错误:无法写提交对象

并且使用 git commit -S -m "..." 时要求输入密码并可以提交成功

原因:

VS Code 等工具无法弹出密码输入界面进行解密操作

解决方法:

删除密钥的密码保护: gpg --change-passphrase <key_id>,输入当前密码后再输入空密码即可删除

CC BY-NC-SA 4.0 转载或引用本文时请遵守许可协议,注明出处、不得用于商业用途!
最后更新于 Apr 28, 2023 02:38 +0800
人最重要的特点是会思考,写博客的初衷是保存思维的电子快照。 当然各种文档工具亦或是简单的文本编辑器也能随时记录点滴,选择建个人网站无非是想满足技术爱好者的偏执。
Built with Hugo
主题 StackJimmy 设计