背景介绍
向 github 仓库提交代码时,如果你的 commit 经过已授权的 GPG Key 签名,那么会显示为绿色的 Verified 状态。
如果你使用了未授权的密钥进行签名,则会显示
可以直观的看到,使用 gpg key 来对我们的 commit 进行签名可以明确我们的主体。 这篇文章就介绍如何在 git commit 中使用 gpg key 签名。
确认用来签名的 key
gpg 体系中,key 有四种功能,我们这里需要的是具有 Sign 功能的 key。
步骤如下:
(1)执行命令:
gpg -K
(2)导出 key
scss
gpg --armor --export [subkey-id]
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEYi2pwxYJKwYBBAHaRw8BAQdAM4z/EWvvRI/z65Pbw4y9Z9x8f/z0X1wwvTO8
fNe0h8O0NVdpbmtlZSBTYWlsIChNYXN0ZXIgS2V5IEVkMjU1MTkpIDx3aW5rZWUw
MUBnbWFpbC5jb20+iJAEExYKADgWIQSnW61qOHl0YvBRlnIrKl/OQDfDsAUCYi2p
...
gO44EeSYHf2SXhe9LQf1XH4FVAkpMDIBAJfQGqsvNAdZl4h5WVJ1cCtR/i0IZ5a6
R0reK0JMvmAC
=Jcxw
-----END PGP PUBLIC KEY BLOCK-----
(3)把 key 添加到 Github 账户中
(4) 把 key 绑定到 git client 上
绑定之后,执行 git commit 命令时就会自动调出 key 进行签名。
lua
git config --global user.signingkey [your GPG Key ID]
git config --global commit.gpgsign true
git config --global gpg.program "/opt/homebrew/bin/gpg"
我们也可以编辑 ~/.gitconfig 文件来添加设置:
ini
[user]
name = winkee01
email = winkee01@gmail.com
signingkey = A75BAD6A
[commit]
gpgsign = true
[gpg]
program = /opt/homebrew/bin/gpg
(5)添加 -S 选项
我们在提交的时候,还需要指定 -S 选项,才能出发签名动作。
ruby
$ git commit -S -m "your commit message"
# Creates a signed commit
$ git commit -a -S --amend --no-edit
全文完!
如果你喜欢我的文章,欢迎关注我的微信公众号 deliverit。