咦,你的Git仓库贡献者里怎么有这么多大佬???

之前在分享文章的时候有人说我们 AirPower4T 这个开源项目的 Git 仓库为什么有这么多大佬参与了贡献:

今天出一期如何操作的教程吧~(确实挺无聊的)

Github 贡献者机制

因为 Git 分布式设计的原因,其本身没有账号机制,而是使用本地配置的 邮箱 作为贡献者的唯一标识,昵称作为 Git 提交记录中显示的用户名称:

bash 复制代码
git config --global user.email "admin@hamm.cn"
git config --global user.name "Hamm"

Github 的底层也是使用了 Git ,所以虽然 Github 有了账号机制,但如何和 Git 的用户关联,就只能使用 邮箱 作为唯一标识了。

如果对应的邮箱没有注册 Github 的话,Github会生成一些默认的邮箱地址和头像昵称来 蒙混过关
哦对了,Github 也会为一些机器人Bot设置一些乱七八糟的邮箱来避免和真实的邮箱重复,导致贡献列表混乱。

所以我们只需要在本地将本地配置的 邮箱 设置为 Github 上相同的邮箱账号上,这样 Github 就能识别出这个 Git 提交记录的贡献者了。

如何找到其他人的邮箱?

Git 的每一次提交都会包含提交者的邮箱和昵称,于是我们可以找到其他人的开源仓库,克隆下来看一下提交记录即可找到了。

比如这就看到了 你们都认识的 那个不懂Vue的男人:

接下来,你就可以通过 git config 将这个邮箱设置为你的 Git 邮箱账号,接下来你的提交记录就会绑定这个邮箱了。

然后,你一 git pushGithub 就会认为你就是邮箱对应的用户,就会把 Github 对应邮箱的账号作为贡献者加到你的代码仓库贡献者列表了。

Github这个设计算漏洞吗

算,也不算。

因为 Git 的设计本身就如此,Github 也没办法直接改掉这个设计。而且,你也只是在你自己的仓库里小打小闹,问题不大,而且这个提交也不会触发任何和该邮箱相关的一些通知事件,所以其邮箱本人也是毫不知情,也没有被邮件通知打扰。

但是吧,毕竟就这么稀里糊涂的被其他人加到贡献者里了,也不太好。(我的代码仓库底下说明了,贡献者列表是闹着玩的)

Github加入了GPG签名

Github 在很早就引入了 GPG 签名机制,允许用户使用 GPG 密钥对提交进行签名,从而保证提交记录的完整性和真实性。

但是,这个 GPG 签名机制并不会改变 Github 的贡献者机制,也就是说,如果你的提交记录没有 GPG 签名,Github 也会认为你是提交者,只不过没有 GPG 签名而已。

Github 如何确认邮箱提交者通过认证?

提交公钥

sequenceDiagram GPG--)GPG: 生成公钥 GPG-)用户: 保存公私钥 用户->>Github: 提交公钥

如何生成 GPG 公私钥,你可以在网络上搜索其他的教程。你只需要将你的 GPG 公钥填写到这里:github.com/settings/gp...

提交代码

sequenceDiagram 用户--)用户: 提交前私钥签名 用户->>Github: 带签名提交代码 Github--)Github: GPG公钥验证签名 Github-)用户: 确认允许或拒绝PUSH

此时就完成了用户的 GPG 签名验证,但如果需要直接拒绝 git push,你需要在这里开启一下:

如果不开启的话,用户不签名依然能 git push ,只是会打上一个 未签名 的标签而已。

总结

今天分享的东西有点无聊,就这样吧~

Bye~

相关推荐
子兮曰1 小时前
Node.js v26.1.0 深度解读:FFI、后量子密码与调试器的进化
前端·后端·node.js
测试员周周1 小时前
【Appium 系列】第06节-页面对象实现 — LoginPage 实战
开发语言·前端·人工智能·python·功能测试·appium·测试用例
2401_873479402 小时前
运营活动被薅羊毛怎么防?用IP查询+设备指纹联动封堵漏洞
java·网络·tcp/ip·github
西洼工作室3 小时前
前端直传OSS服务端签名(Policy+Signature)/STS临时凭证
前端·文件上传·oss
你很易烊千玺3 小时前
日常练习-数组 字符串常用的场景
前端·javascript·字符串·数组
weixin199701080164 小时前
[特殊字符] RESTful API 接口规范详解:构建高效、可扩展的 Web 服务(附 Python 源码)
前端·python·restful
存在的五月雨4 小时前
Vue3项目一些语法
前端·javascript·react.js
nashane4 小时前
HarmonyOS 6学习:Web组件同层渲染事件处理与智能长截图实现
前端·学习·harmonyos·harmonyos 5
大家的林语冰4 小时前
Node 2026 发布,JS 三大新功能上线,最后一个奇偶版本
前端·javascript·node.js