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

相关推荐
Cosolar1 小时前
极简智库(MiniDocs):docsify、VitePress、Notion 等知识库搭建服务的完美替代
前端·后端·架构
Decay__1 小时前
21_MySQL 优化案例集 —— 慢 SQL 优化、索引重构与参数调整收益对比
运维·数据库·sql·mysql·架构
vipxieliang2 小时前
事件驱动架构实战:解耦、异步与可扩展性
架构
mldong3 小时前
同一个节点接力办几轮,流程才往下走:jeeflow 的后加签
后端·架构
Decay__12 小时前
18_MySQL 智能巡检方案 —— 巡检项清单 / 一键巡检脚本 / 健康评分
运维·数据库·sql·mysql·架构
天远API16 小时前
零信任架构实战:基于天远运营商三要素详版V即时版构建自动化消费电子大促电商平台高价值权益秒杀与优惠券防羊毛高并发实名核验网关
运维·人工智能·架构·自动化
这个DBA有点耶17 小时前
信创场景下数据同步软件怎么选?对比开源CDC与原生闭环工具的结构性差异
数据库·mysql·架构
多客:duokelijie18 小时前
代练订单系统选型思路:跨品类游戏接入、订单分层管理、自动结算逻辑拆解!
数据库·mysql·微信小程序·前端框架·uni-app·php·持续部署
衡石科技19 小时前
衡石高性能分析架构:HQL、查询下推与多层加速的协同设计
架构·数据分析
Tokenfree21 小时前
换模型也要灰度:10% → 50% → 100%,每一档只看三个指标
架构