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

Description

@cssmagic

如何正确接收 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

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

Repo 的关注选项

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

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

取消关注某个讨论

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

取消订阅-1

取消订阅-2

锁定某个讨论

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

屏蔽某个人

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

结语

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

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


转自: cssmagic/blog#49

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
       blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
      }
      } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
      })();
      (function(){
      try {
      var __m = "github.com";
      var __re = new RegExp('^' + "github\\.com" + '
      
      Skip to content

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

      Description

      @cssmagic

      如何正确接收 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

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

      Repo 的关注选项

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

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

      取消关注某个讨论

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

      取消订阅-1

      取消订阅-2

      锁定某个讨论

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

      屏蔽某个人

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

      结语

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

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


      转自: cssmagic/blog#49

      Activity

      Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

      Metadata

      Metadata

      Assignees

      No one assigned

        Labels

        No labels
        No labels

        Type

        No type

        Projects

        No projects

          Milestone

          No milestone

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
          Skip to content

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

          Description

          @cssmagic

          如何正确接收 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

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

          Repo 的关注选项

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

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

          取消关注某个讨论

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

          取消订阅-1

          取消订阅-2

          锁定某个讨论

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

          屏蔽某个人

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

          结语

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

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


          转自: cssmagic/blog#49

          Activity

          Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

          Metadata

          Metadata

          Assignees

          No one assigned

            Labels

            No labels
            No labels

            Type

            No type

            Projects

            No projects

              Milestone

              No milestone

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
              Skip to content

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

              Description

              @cssmagic

              如何正确接收 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

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

              Repo 的关注选项

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

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

              取消关注某个讨论

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

              取消订阅-1

              取消订阅-2

              锁定某个讨论

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

              屏蔽某个人

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

              结语

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

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


              转自: cssmagic/blog#49

              Activity

              Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

              Metadata

              Metadata

              Assignees

              No one assigned

                Labels

                No labels
                No labels

                Type

                No type

                Projects

                No projects

                  Milestone

                  No milestone

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions

                  , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
                  Skip to content

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

                  Description

                  @cssmagic

                  如何正确接收 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

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

                  Repo 的关注选项

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

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

                  取消关注某个讨论

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

                  取消订阅-1

                  取消订阅-2

                  锁定某个讨论

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

                  屏蔽某个人

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

                  结语

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

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


                  转自: cssmagic/blog#49

                  Activity

                  Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

                  Metadata

                  Metadata

                  Assignees

                  No one assigned

                    Labels

                    No labels
                    No labels

                    Type

                    No type

                    Projects

                    No projects

                      Milestone

                      No milestone

                      Relationships

                      None yet

                      Development

                      No branches or pull requests

                      Issue actions

                      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                      Skip to content

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

                      Description

                      @cssmagic

                      如何正确接收 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

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

                      Repo 的关注选项

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

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

                      取消关注某个讨论

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

                      取消订阅-1

                      取消订阅-2

                      锁定某个讨论

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

                      屏蔽某个人

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

                      结语

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

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


                      转自: cssmagic/blog#49

                      Activity

                      Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

                      Metadata

                      Metadata

                      Assignees

                      No one assigned

                        Labels

                        No labels
                        No labels

                        Type

                        No type

                        Projects

                        No projects

                          Milestone

                          No milestone

                          Relationships

                          None yet

                          Development

                          No branches or pull requests

                          Issue actions

                          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                          Skip to content

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

                          Description

                          @cssmagic

                          如何正确接收 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

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

                          Repo 的关注选项

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

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

                          取消关注某个讨论

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

                          取消订阅-1

                          取消订阅-2

                          锁定某个讨论

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

                          屏蔽某个人

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

                          结语

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

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


                          转自: cssmagic/blog#49

                          Activity

                          Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

                          Metadata

                          Metadata

                          Assignees

                          No one assigned

                            Labels

                            No labels
                            No labels

                            Type

                            No type

                            Projects

                            No projects

                              Milestone

                              No milestone

                              Relationships

                              None yet

                              Development

                              No branches or pull requests

                              Issue actions

                              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
                              Skip to content

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

                              Description

                              @cssmagic

                              如何正确接收 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

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

                              Repo 的关注选项

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

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

                              取消关注某个讨论

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

                              取消订阅-1

                              取消订阅-2

                              锁定某个讨论

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

                              屏蔽某个人

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

                              结语

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

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


                              转自: cssmagic/blog#49

                              Activity

                              Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

                              Metadata

                              Metadata

                              Assignees

                              No one assigned

                                Labels

                                No labels
                                No labels

                                Type

                                No type

                                Projects

                                No projects

                                  Milestone

                                  No milestone

                                  Relationships

                                  None yet

                                  Development

                                  No branches or pull requests

                                  Issue actions