Github - 如何提交一个带有“verified”标识的commit

Github - 如何提交一个带有"verified"标识的commit

前言(Why)

今天在Github上浏览某项目的commit记录的时候发现,有的commit记录带有verified绿色标识,有的带有橘色的Unverified标识,还有的什么都不显示。

既然我是根正苗红的作者(bushi),为何不想要一个verified标呢?相关探究随之而来。

What

这是Github的"提交签名验证"机制,可以确保改提交未本人所为。

当提交签名在被推送到 GitHub 时经过验证,一个验证记录会与该提交一并存储。 该记录无法编辑且会一直存在,这样一来,即便签名密钥被轮换、撤销,或者参与者离开了组织,签名也能始终保持已验证状态。

验证记录包含一个时间戳,用于标记验证完成的时间。 此持久记录可确保已验证状态的一致性,为存储库内的参与提供稳定的历史记录。 可以通过将鼠标悬停在 GitHub 上的"Verified"徽章上,或者通过REST API访问提交(其中包含一个 verified_at 字段)来查看此时间戳。

How

因为SSH密钥对还可以当Authentication Key,所以这里介绍如何使用SSH密钥对对一次commit签名(其实是因为我暂时不太了解GPG Key)。

假设你已经在默认位置生成过ssh密钥对,则只需在你想提交时签名的仓库执行以下命令(如果你想对所有未进行过相关配置的仓库生效,只需要在git config后面加一个--global):

bash 复制代码
git config commit.gpgsign true           # 设置commit时使用gpg签名
git config gpg.format ssh                # 设置使用ssh密钥进行签名
git config user.signingkey <ssh公钥路径>  # 配置ssh公钥路径

然后将ssh公钥上传到github上。

Github - SSH and GPG keys -> New SSH Key -> Key type选择Signing Key -> 输入SSH公钥并保存。

在本地进行一次commit并push到Github,顺利的话,在Commit历史记录中就能看到Verified标了。

End

但是注意,git版本大于等于2.41才支持上述配置。
The Real End, Thanks! 原创不易,转载经作者同意后请附上原文链接哦~

Tisfy:https://letmefly.blog.csdn.net/article/details/144796175

相关推荐
AI首席情报员_阿布28 分钟前
2026 GitHub 最火的 10 个 AI Agent 框架:普通开发者的选型指南
github
Carry34533 分钟前
不清楚的 .gitignore
前端·git
阿里嘎多学长6 小时前
2026-01-11 GitHub 热点项目精选
开发语言·程序员·github·代码托管
三两肉6 小时前
HTTPS ECDHE 握手全解析
网络协议·https·github·rsa·echde
啊湘6 小时前
vscode 使用 github (适用CURSOR等使用)
ide·vscode·github·cursor·mcp
Kiyra6 小时前
虚拟机假死?SSH 能连却卡 Logo 界面
运维·ssh
l1t7 小时前
利用DeepSeek辅助拉取GitHub存储库目录跳过特定文件方法
人工智能·github·deepseek
Hilaku7 小时前
我用 Gemini 3 Pro 手搓了一个并发邮件群发神器(附源码)
前端·javascript·github
谢平康8 小时前
ssh-copy-id 后还是一直需要密码登录的一个解决办法
运维·ssh