如何正确接收 GitHub 的消息邮件

如何正确接收 GitHub 的消息邮件

背景

我厂的开发流程通常都是基于 GitHub 的。在 GitHub 上 review 代码,也是我日常工作的重要组成部分。对我来说,在 code review 过程中最讨厌的莫过于,我在 pull request 或 commit 下面评论或 @ 人,往往石沉大海,没有回音。我事后追问当事人,他们的回复往往是 “不知道你 @ 我了呀~”。

这让我非常恼火。所以,我决定写篇文档给所有人看,避免他们漏看重要的 GitHub 消息。此后在 GitHub 不回复我的人,差不多也可以绝交了罢!

GitHub 的通知机制

通知的类型和方式

在两种情况下,我们会收到 GitHub 的通知。

  • 我关注的Watching:当我关注了某个项目之后,相当于订阅了这个项目的所有更新,即这个项目的新 release、新 issue、新 PR 及所有讨论都会通知我。
  • 我参与的Participating:当我参与到某个 issue、PR 或 commit 的讨论,或被别人 @ 后,我都会持续收到这个讨论的后续更新。

后面一种情况似乎对我更加重要一些。如果不需要密切跟进某个项目,我应该避免关注它。

另外,GitHub 会通过以下两种方式来通知我们:

  • 站内信Web:当我登录 GitHub 网站时,如果有新消息,在导航栏会看到一个小蓝点。点进去就可以看到详细通知。

  • 电子邮件Email:通知会直接发送到我的邮箱,而且我直接回复邮件的效果相当于登录到相关页面回复,非常方便。

可见,前者是被动方式,提醒能力太弱。而后者是主动推送,时效性好,但我需要注意的就是控制消息密度,避免被轰炸。因此,接下来,我们来了解一下 GitHub 的 “自动关注” 功能。

自动关注

不错过重要的消息,首先意味着不能被无关紧要的消息湮没。如果你经常收到大量的 GitHub 消息,那你可能就全都不看了。因此,我们需要关掉 “自动关注” 功能。

登录 GitHub 通知中心页面,即可关闭这个功能:

为什么要关它?这个功能很有意思,每当你获得了一个 repo 的 push 权限之后,GitHub 就会帮你自动关注这个 repo。这在开源社区是很有用的,因为当你获得了这个权限时,往往意味着你成为了这个 repo 的核心维护者,你确实需要第一时间掌握这个项目的一举一动。

但这对于公司内部项目就不那么合适了。比如我们的主站项目是一个私有 repo,几乎公司内的每位工程师都会 fork 它;同时出于协作的需要,每个 fork 都需要向所有工程师开放读写权限。因此,你将自动关注这近百个 repo,而这些 repo 的任何风吹草动都会通知你,即使你并未真正在其它同事的 fork 上工作。

总之,为了避免无关消息对你的轰炸,请关掉自动关注功能。你可能已经关注了一堆无关紧要的 fork 了,请记得在你的 关注列表页面 逐一取消。(如果你不是核心管理员,建议你把主站项目的 upstream 也取消关注。)

个人设置

了解完 GitHub 的特性之后,我们就可以针对性地做出配置和选择了。

设定 Email

正常情况下,每个人在工作时间都会开着自己的工作邮箱。那么首先,需要确保 GitHub 的消息是发到这个邮箱的。由于每个人的 GitHub 账号往往并非是用工作邮箱注册的,我们需要把邮箱搞对。

登录 GitHub 的邮箱设置页面,添加自己的工作邮箱。随后工作邮箱会收到一封验证邮件,完成验证之后,你的 GitHub 账号就绑定了两个邮箱。

(并不需要为把这个工作邮箱设置为 “primary”,只要验证通过就可以了。)

到这里我们就做好 Email 的准备工作。

通知中心

接下来,我们进入 GitHub 通知中心,为两种不同类型的通知选择通知方式。请确保至少第一个 “Email” 是被选中的:

接下来,选择接收邮件通知的邮箱。选择我们刚刚添加的工作邮箱,保存。

(这里的邮箱设置只会影响消息的接收,不会影响账号身份。)

好了,大功告成。从此以后,所有重要的 GitHub 消息都会发送到你的工作邮箱。最后,再告诉你几个小技巧,相信你用得上。

减少干扰

取消关注某个 Repo

前面已经提到过 你的关注列表,在那里,你可以随时清理不再重要的项目。同时,进入任何项目的页面,在右上角都可以选择对它的关注方式。

“Not watching” 意味着取消关注,你将不会收到与你无关的通知。而与你有关的(你发起的、主动参与的或被 @ 的)讨论有新回复,你还是会收到通知的。

请注意不要选择 “Ignoring”,那意味着你连重要的消息也收不到了。

取消关注某个讨论

当某个讨论已经没你什么事了,但仍然不断有后续消息涌进来,那就果断屏蔽它吧。从消息邮件中的链接点到网页,找到如下所示的 “取消订阅” 的按钮,即可取消关注这个讨论。

锁定某个讨论

当某个 issue 或 PR 已经没有继续讨论的必要的,你可以锁定它——当然前提是你得是这个 repo 的管理员。

屏蔽某个人

如果你遇到了无聊的人总是骚扰你,可以到它的用户页面,屏蔽并举报。

结语

相信看到这里,你已经对 GitHub 的通知机制十分了解了吧,并且应该可以灵活配置 GitHub 消息的接收方式了。

好吧,就这样吧。如果以后还是不回复我,绝交。

原文发布时间为:2013-04-02.

时间: 2025-01-02 08:26:58

如何正确接收 GitHub 的消息邮件的相关文章

已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: SSL Provider, error: 0 - 接收到的消息异常,或格式不正确。)

之前做好的asp.net部署后,发现 访问数据库时: 异常:已捕获: "已成功与服务器建立连接,但是在登录过程中发生错误. (provider: SSL Provider, error: 0 - 接收到的消息异常,或格式不正确.)" (System.Data.SqlClient.SqlException)捕获到一个 System.Data.SqlClient.SqlException: "已成功与服务器建立连接,但是在登录过程中发生错误. (provider: SSL Pro

lotus notes 客户端只能接收小于1M的邮件

问题描述 请教各位大虾个问题~~我公司使用的邮件客户端是LotusNotes,邮件服务器是DominoServer,lotusnotes客户端只能接收小于1M的邮件,大于1M的邮件在复制时提示"网络操作没有在应该的时间内完成:请重试失败",请问该怎么修改服务器设置或者是本地设置吗?服务器上names.nsf中的"限制"-->"最大消息大小"设置为50M了,以及最大POST数据设置为100M了啊 解决方案 本帖最后由 Sunsars 于 20

java-socket怎么接收复数次消息

问题描述 socket怎么接收复数次消息 我想实现socket多次接收数据,但是只能收到第一次数据,第二次接收会提示java.io.StreamCorruptedException,请问这块我应该怎么改,代码如下. while (true) { // 输入流 InputStream is = null; is = socket.getInputStream(); ObjectInputStream in = new ObjectInputStream(is); TimeMessage timeM

PHP-微信公众平台开发-接收用户输入消息类型并响应

原文:PHP-微信公众平台开发-接收用户输入消息类型并响应 <?php // 该代码块用于接收用户消息,根据用户输入的消息类型进行判断,文本,图片,视频,位置,链接,语音等,并取得值,处理后给予响应. // 接收用户消息 // 微信公众账号接收到用户的消息类型判断 // define("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest(); if (!isset($_GET['echostr']

pop3-求教,C# 利用POP3协议 接收指定的发件人邮件,如何实现?请代码示意,谢谢!

问题描述 求教,C# 利用POP3协议 接收指定的发件人邮件,如何实现?请代码示意,谢谢! C# 利用POP3协议 接收指定的发件人邮件,如何实现? 以雅虎邮箱为例,POP3服务器地址:pop.mail.yahoo.com 端口:995 登录方式:SSl加密登录: 一个邮箱里面有几百封不同发件人的邮件(全部下载太耽误时间),我只想收取指定发件人的邮件内容,该如何做? 解决方案 (转载)用pop3 c#接收邮件C#实现POP3邮件接收程序实现POP3邮件接收程序[C#] 解决方案二: http:/

vb 接收数据 精度-vb如何正确接收加速度计的数据

问题描述 vb如何正确接收加速度计的数据 比如加速度计传给VB的数据是10.1234 vb应该如何接收才能保证精度,也就是接收到的数值也是10.1234 而不是10或其他 解决方案 '*******************声明变量********************* Option Explicit Dim strData As String Dim bytInput() As Byte '这里为什么一定要byte类型.byte类型接收回来的数值范围是0-255 但是我想要接收小数,怎么接啊

[已解决]注册了接收透传消息的广播,对方发送透传消息成...

问题描述 本帖最后由 hongyan 于 2015-3-18 16:01 编辑 **注册了接收透传消息的广播,对方发送透传消息成功了,为什么收不到透传消息?** 解决方案 检查一下是否在注册完广播以后加上EMChat.getInstance().setAppInited()

ASP.net中,用JS做赋值,JS代码中不能正确接收后台传来的值怎么回事啊?

问题描述 ASP.net中,用JS做赋值,JS代码中不能正确接收后台传来的值怎么回事啊? window.onload = function () { document.getElementById("ip_area").value = <%=content %> ; } 为何后台content变量只要含有n,value赋值就失败?如何用JS的方法,让这个textarea中正确的显示一片文章呢? 小弟初出茅庐,求各位大神指点啊

.NET调用COM组件,无法接收COM组件消息问题

问题描述 我这有一个用VB.NET写的winform程序,其中引用了一个COM组件,由VS2005自动导入类型库COM对象创建.订阅COM事件与COM调用都是在一个STA子线程中执行,问题是无法接收到COM消息,如果上面的过程都在UI线程是可以的不知道是什么原因 解决方案 解决方案二:相关代码如下:ImportsEMPPLibPublicClassMainFormPrivateSubbtnConnect_Click(ByValsenderAsSystem.Object,ByValeAsSyste