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

背景介绍

向 github 仓库提交代码时,如果你的 commit 经过已授权的 GPG Key 签名,那么会显示为绿色的 Verified 状态。

如果你使用了未授权的密钥进行签名,则会显示

可以直观的看到,使用 gpg key 来对我们的 commit 进行签名可以明确我们的主体。 这篇文章就介绍如何在 git commit 中使用 gpg key 签名。

确认用来签名的 key

gpg 体系中,key 有四种功能,我们这里需要的是具有 [S]ign 功能的 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。

相关推荐
段一凡-华北理工大学13 分钟前
【大模型+知识图谱+工业智能体技术架构】~系列文章01:快速了解与初学入门!!!
人工智能·python·架构·知识图谱·工业智能体
前端摸鱼匠14 分钟前
Vue 3 的defineEmits编译器宏:详解<script setup>中defineEmits的使用
前端·javascript·vue.js·前端框架·ecmascript
北漂Zachary2 小时前
Laravel 5.x升级亮点:从架构优化到API革新
架构·php·laravel
lpfasd1232 小时前
网站反爬机制的技术架构与演进
架构
Tony沈哲2 小时前
多智能体不是终点,而是起点:OpenVitamin 的 Agent Orchestration 的工程实现
架构·llm·agent
gyx_这个杀手不太冷静4 小时前
大人工智能时代下前端界面全新开发模式的思考(三)
前端·架构·ai编程
WayneYang6 小时前
Angular 基础知识点全汇总(附实战示例 | 新手友好)
前端框架
酒後少女的夢7 小时前
设计模式教程
后端·架构
苏格兰黑马7 小时前
解构 OpenClaw:高度解耦的渠道层架构与 Telegram 插件实现
架构
guslegend7 小时前
第10节:设计高效混合检索架构,提升召回精度
人工智能·架构·大模型·rag