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