在 git commit 中使用 gpg key 进行签名

背景介绍

向 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。

相关推荐
爱学习的程序媛7 小时前
2. 智能应用开发技术栈清单
ai·架构·系统架构·ai应用·智能体开发·智能应用开发
m0_587383007 小时前
24小时自助健身房软硬件解决方案实战指南:从架构设计到部署实施
java·spring·小程序·架构·需求分析
这个DBA有点耶8 小时前
MySQL字符集与排序规则深入:索引失效的隐蔽场景与排查方法
数据库·mysql·代码规范
微三云 - 廖会灵 (私域系统开发)9 小时前
智慧社区 B 端深度剖析:消费返物业费 2.0,权益循环系统的业务、架构与避坑实践
大数据·架构
风123456789~9 小时前
【架构专栏】第18章 安全架构设计 2/3
安全·架构·安全架构
微三云生态系统架构师-彭丹9 小时前
顶俏S2B2C工厂排产与积分兑换联动:需求预测与门店补货
架构
JudithHuang9 小时前
React 常用 Hooks
前端·react.js·前端框架
码云之上10 小时前
从搜索框到 Agent:Chatbot 联网搜索的技术演进
人工智能·架构·前端框架
凤山老林10 小时前
Spring Boot DDD 分层架构落地:领域模型、聚合根与事件驱动的业务实战
java·spring boot·架构
Dawson Zhu10 小时前
大模型推理的三维本质:原理解析与工程实践
人工智能·语言模型·架构·aigc·agi