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

相关推荐
软件黑马王子1 小时前
19.资源加载模块:主要作用和基本原理
开发语言·前端框架·c#
156002548402 小时前
基于3U VPX总线架构的VU37P FPGA高带宽HBM缓存数据处理卡(缓存带宽480GB/s)
fpga开发·架构
吴佳浩 Alben2 小时前
构建企业级 DevOps 排错 Agent:从日志告警到自动化修复 PR
大数据·人工智能·语言模型·架构·自动化·ai编程·devops
FII工业富联科技服务2 小时前
三维世界模型驱动机器人操作:概念解析、技术挑战与Omniverse全栈架构深度拆解
大数据·架构·机器人
重庆小透明2 小时前
Kafka 完全指南:从基础组件到核心原理(包含面试题)
java·分布式·微服务·架构·kafka
王解2 小时前
AG-35_DeepSeek Harness 发布:一切皆插件的 Agent 框架
架构·agent
码云之上2 小时前
让聊天机器人学会工作方法,星悟接 Agent Skills 的实践
人工智能·架构·全栈
4SAPI3 小时前
2026年大模型API接入选型指南:企业与个人用户的架构、稳定性与成本考量
大数据·开发语言·数据库·人工智能·架构·php
咖啡八杯3 小时前
实体基类设计:BaseEntity 公共字段抽取与 TreeEntity 树形继承
java·架构·代码规范