博主头像
mxd's Blog

以技术为翼,以生活为魂

统一邮箱之后,舒服多了

前段时间,我把自己:GitHub、Gitea、以及给其他开源项目提交 Patch、邮件列表等用的邮箱,基本都统一成了:

mxd#mxdyeah.com

之前很多年,我一直习惯用:

mxd+github#mail.mxdyeah.top
mxd+gitea#mail.mxdyeah.top
mxd+patchwork#mail.mxdyeah.top

这种形式。

主要是方便分类。

哪个平台发来的邮件,一眼就能看出来;哪个网站泄露邮箱了,也很好定位。以前折腾邮件服务器的时候,还挺喜欢这种玩法。

后来发现,这套东西放在 Git 生态里,其实不太舒服。


最开始只是偶尔发现:

“诶,这个 Commit 怎么没显示在 Contributions 里?”

后来又发现:

“为什么不同平台搜不到我以前的提交?”

再后来甚至变成:

“这几个作者怎么都是我自己?”

因为 Git 其实根本不认账号。

它只认:

用户名 + 邮箱

也就是说:

mxd <mxd+github@xxx>

和:

mxd <mxd+gitea@xxx>

在 Git 看来,就是两个人。特别是跨平台协作

于是时间长了之后,各种历史开始裂开。

有时候看 git shortlog,甚至能看到自己出现好几个名字。给别人项目提 PR 的时候也是,有些平台能关联,有些关联不上,全看邮箱有没有对上。哎~

尤其是同时混:

  • Github
  • 自建 Gitea
  • 邮件列表
  • Patch workflow

这些东西的时候,会特别明显。


还有个坑,我之前真没想到。

我后来想着:

“反正邮箱统一了,那旧的 tag 邮箱删掉算了。”

结果删完之后,Github 上一部分 Commit 直接“不属于我了”。

当时我人都懵了。

后来才知道,Github 的 Commit 关联,本质上是:

“这个邮箱现在是不是你的已验证邮箱”。

如果你把历史 Commit 用过的邮箱删了,那些 Commit 当然还在,但平台不会再把它算到你头上。

所以现在我的做法基本变成:

  • 旧邮箱保留绑定
  • 不继续使用
  • 新提交统一正式邮箱

这样历史不会炸。


其实现在回头看,问题倒也不是 +tag 不好。

我现在订阅邮件、注册网站,还是照样:

mxd+xxx@...

真正的问题是:

Git 这套东西,本质上是“长期身份系统”。

尤其开源社区很多地方,其实只认邮箱。

有时候 Maintainer 记住的不是你的用户名,而是:

From: xxx@xxx

包括很多邮件列表、Patch Archive、CI Attribution,本质上全在围着邮箱转。

所以 Commit 邮箱如果一直变化,时间长了体验确实会越来越怪。


现在统一之后,最大的感受其实不是“规范”了。

而是终于没那么乱了。

以前像:

  • 一个平台一个身份
  • 一个邮箱一套历史
  • Contribution 对不上
  • 搜索不到以前 Commit
  • Co-author 到处乱飞

现在基本都没了。

包括以后如果别人:

git log
git shortlog

至少能稳定看到是同一个人。

就像 Linus Torvalds 的 Linux kernel commit 长期使用的是:

[email protected]

例如 kernel commit 里能直接看到:

Linus Torvalds <[email protected]>

不过有一点我现在是真觉得挺重要:

如果你已经有历史 Commit 了,不要随便删旧邮箱。

哪怕不用了,也最好继续挂在账号上。

不然某天你打开 Github,看见自己几年的 Contribution 少了一大片,真的挺难受的。

统一邮箱之后,舒服多了
https://blog.mxdyeah.com/post/email-unification
本文作者 mxdyeah
发布时间 2026-05-16
许可协议 CC BY-NC-SA 4.0
发表新评论

AD: