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

相关推荐
用户69190268133917 小时前
Vibe Coding 开发项目的基本范式
人工智能·设计模式·代码规范
Cosolar1 天前
藏在 Claude Code 里的极致浪漫:完整 187 条 Spinner Verbs 全收录
后端·程序员·代码规范
JouYY1 天前
简单聊一下Harness层中的人机协同(HITL)
前端框架·llm·agent
星栈1 天前
Dioxus 多页面怎么做:`dioxus-router`、嵌套路由、`Outlet` 和页面组织,一篇给你讲顺
前端·rust·前端框架
贵慜_Derek1 天前
《从零实现 Agent 系统》连载 32|闭集 IE 与小模型:分类、意图与字段抽取
人工智能·架构·agent
江米小枣tonylua1 天前
译:设计生产级 RAG 架构
架构
怕浪猫2 天前
领域特定语言(Domain-Specific Language, DSL)
设计模式·程序员·架构
怕浪猫2 天前
哪些软件对 Chrome DevTools Protocol 频繁使用
人工智能·架构·前端框架
Mickey8612 天前
MCP 加持下的零代码逆向:全自动化绕过 APP 验签与加密实战
代码规范
Jack202 天前
HarmonyOS APP事件驱动大揭秘
架构