Skip to content

git 十八般武艺 - 如何给你的 "git commit" 加上 "Verified" 标签?

"Verified" 标签的作用用于证明【我是我,别人不是我】,需要借助于 gpg 这个加密软件配套使用。

  1. 检查 gpg 配置:
  • 运行 gpg --version 命令,确保 gpg 已正确安装并可用,如果未安装,执行指令 brew install gnupg
  • 运行 echo "test" | gpg --clearsign 命令,检查是否能够成功生成 PGP 签名,如果有报错信息,“gpg: no default secret key: 缺少私钥”,不要慌,继续执行下面的步骤。
  1. 生成 gpg 密钥:
  • 运行 gpg --full-generate-key 命令,按照输入提示,密钥类型使用默认的 RSA and RSA 即可,密钥长度推荐使用 4096,然后输入你的个人信息,注意要使用和 git 提交时相同的邮箱地址,最后输入一段密码,用来提取这个密钥。
  1. 检查 gpg 密钥:
  • 运行 gpg --list-secret-keys --keyid-format=long 命令,确保已正确设置了签名密钥。
  1. 导出 gpg 公钥
  • 运行 gpg --armor --export <YOUR_KEY_ID>,将公钥的内容复制到 Github / Settings / SSH and GPG keys
  1. 设置 GPG_TTY 环境变量:
  • 运行 export GPG_TTY=$(tty) 命令,设置 GPG_TTY 环境变量,以便 gpg 可以正确与终端进行交互。
  1. 检查 Git 配置(如果需要默认启用 gpg 签名):
  • 运行 git config --global user.signingkey <YOUR_KEY_ID> 命令,确保已正确设置了 Git 用户的签名密钥。
  • 运行 git config --global commit.gpgsign true 命令,确保已启用了签名。
  1. Git 提交启用签名
  • 运行 git commit --gpg-sign=<YOUR_KEY_ID> -am "XXX",如果已经设置了 user.signingkeycommit.gpgsign,提交时不需要带上参数 --gpg-sign。