【译】原来 GitHub 还有这些骚操作?

2,359 阅读7分钟

作者:Lee Reilly
原文:github.blog/2020-04-09-…
翻译:零和幺

我作为一名工程师、开发者以及市场管理者,使用 GitHub 已经超过 10 年的时间了。在这期间,我掌握了一些使用 GitHub 的小技巧:如管理我的通知消息,快速定位内容,创建一个 pull request 以及一些我使用过的第三方插件。我会分享一些我最喜欢的东西,也希望我分享的这些东西能对你有用。

1. 文件模糊搜索

当我发现文件模糊搜索这个功能的时候,我已经使用 GitHub 超过一年了。当进入任何仓库后,只需要按下键盘上的 t 键,就可以进入文件模糊搜索模式了。输入任何你想要找到文件名,就可以找到对应的文件。

2. 更轻松的浏览文件与目录

说起搜索文件,有一个非常不错的浏览器插件叫 Octotree 。它像一个传统的树状导航栏,帮助你浏览目录、打开文件。

好消息:它可以和 GitHub Enterprise 一起工作。

有趣的事:几年前,我与该插件的作者沟通了关于项目如何支持 GitHub Enterprise。如果你想构建一个服务于 GitHub 的浏览器插件,也想确认该插件是否可以工作于 GitHub Enterprise,你可以通过加入 GitHub Developer Program获得一个开发者证书

3. 通知提醒

在浏览器插件这个主题上,来自 @sindresorhus 的项目 notifier-for-github,可以确切的告诉你有多少个 GitHub 通知还未被处理。它有一个不起眼的图标显示在一个工具栏中。当然,如果你喜欢,你也可以设置为桌面通知。

同样,它也可以工作于 GitHub Enterprise。你所需要做的唯一一件事就是改变 API 指向,让它匹配你个人的 URL。(如,api.github.cyberdynesystem.com)

4. 让你的 @提醒 更加明显

Mention Highlighter 是我朋友 @benbalter 的作品。它可以高亮所有引用我名字的地方,即使在我快速浏览评论的时候,我也可以看到任何提醒我的地方。

5. 代码片段链接

这不是一个秘密,但很显然不是所有人都知道。当你浏览一个文件时,你可以通过点击文件中每一行代码前面的数字,创建代码中特殊行的链接。默认情况下,行号(如:#L1337)会被追加到 URL 中,它会直接跳转到你标记那一行中。

但如果文件被修改、删除或是重命名,链接将不会再管用。你可以通过键盘上的 y 或者点击 Copy permalink 来生成一个标准链接,这样它就会一直工作了。

你也可以通过按住 shift 键 ,选择一个行号的范围来生成链接。

小惊喜:如果你在 GiuHub 的评论中添加了一个代码片段链接,一个漂亮的代码界面就会出现。

6. 必须知道的 Markdown 格式化技巧

GitHub Flavored Markdown 是一个对于基本文本以及基础表格来说很好的工具,但有时候你又希望可以有点创造性。

键盘标签

你可以用 <kbd> 标签让文本变成一个类似 button 按钮的样子,让它看起来与普通的文本略有不同。它可以用来描述类似键盘快捷键或者游戏控制按键之类的功能。

Press <kbd>W</kbd> to go up, <kbd>A</kbd> to go down. If you can find the <kbd>ESC</kbd>, pressing that will fire missiles.

可视化的十六进制代码

在反引号(``)中使用十六进制(hex)的颜色,我想它是真正的优秀(hexcellent)!

GitHub contribution graph colors: `#C6E48B` `#7AC96F` `#249A3C` `#196127` 

可视化差异

你可以使用反引号和 diff 来获取一个可视化的差异表现形式。它会高亮一行为红色或者绿色。

    ```diff
    10 PRINT "BASIC IS COOL"
    - 20 GOTO 11
    + 20 GOTO 10
	```

事实上,如果你在开始的三个反引号后面加上语言,代码会根据语法高亮。

details 魔法

添加一定长度的错误日志或者冗长的程序输出,到一个 issue 中,可以有效的解决一个 bug ,但是如果它将占满一整页的位置,不妨考虑使用 <details><summary> 标签。

Having some problems firing up the laser.
    
<details>
<summary>Click here to see terminal history + debug info</summary>
<pre>
488 cd /opt/LLL/controller/laser/
489 vi LLLSDLaserControl.c
490 make
491 make install
492 ./sanity_check
493 ./configure -o test.cfg
494 vi test.cfg
495 vi ~/last_will_and_testament.txt
496 cat /proc/meminfo
497 ps -a -x -u
498 kill -9 2207
499 kill 2208
500 ps -a -x -u
501 touch /opt/LLL/run/ok
502 LLLSDLaserControl -ok1

居中文本和图片

已经是 2020 年了,但我依然努力在 Web 网页中居中任何东西。这段代码让我十分惊喜:<div align="center"> [ Your content here ] </div>。这样可以完美的让你的 Logo 在你仓库中的 README 中实现居中:

<div align="center">
<img src="https://octodex.github.com/images/dunetocat.png" width="200">
<p>This is some centered text.</p>
</div>

更小的文本

将本文放在 <sup> 或者 <sub> 标签中,可以让文本看起来更小一些。比如在图片的下方加入"Fig1: description",或者在表格中让文本更小一些,这样就不会出现横向滚动条了。

<div align="center">
<img src="https://octodex.github.com/images/megacat-2.png" width="200"><br>
<sup><strong>Fig 1:</strong> Megatocat into action</sup>
</div>
View more octocats on the [Octodex](https://octodex.github.com/)!

7. URL hacking

一个我带有负罪感的快乐就是在 GitHub 寻找带有标签 #game 的项目 ,然后测试和修改它们。这在咖啡时间或者无聊的星期天下午,是一个很好的活动。

我们在页面暴露的方式(比如搜索框)中筛选内容时,一般都通过一个特定的主题和语言(比如,查找所有用 JavaScript 写的,分类为 #game 的仓库)。但如果你想搜索有关联的两个主题结合后的结果,唯一的方法就是通过 URL hacking 的手段。

简单的追加一个 ?q=[TOPIC] 到一个主题的 URL 中,就可以获取两个主题结合后的结果了。举个例子:

  • 所有被标记为 #covid-19visualization 的仓库:

github.com/topics/covi…

  • 所有被标记为 #chrome-extension#github 的仓库:

github.com/topics/chro…

  • 所有标记为 #unity#shader 的仓库:

github.com/topics/unit…

  • 所有被标记为 #minecraft#mod 的仓库:

github.com/topics/mine…

你知道么: 为你的仓库申请主题可以帮助人们更好的发现它们,甚至为你的仓库做贡献?只要你在项目的主题区域,点一下按钮,并且输入几个关键字就可以了。

8. 黑暗模式

unofficial GitHub Dark Theme 是一个可以工作在 Chrome,Firefox,Opera 和 Safari 上的浏览器插件,可以让 GitHub 呈现黑暗模式。

9. 一个数字游戏

有时候它可以很有效的帮你分析出仓库的元数据和指标。比如说你可以使用命令行 git shortlog -sn 生成一个作者列表,上面展示出他们提交的次数。

$ git shortlog -sn
    
3164  Stanley Goldman
1549  Andreia Gaita
195  Don Okuda
191  Emil "AngryAnt" Johansen
15  Meaghan Lewis
9  Lee Reilly
8  Sarah Guthals
7  Sam Christiansen
7  Mauro Palumbo
6  Marcus Christensen

当然你也可以使用 git shortlog -sn -no-merges ,去除 merge 的 commit 信息。

对于一个公共仓库来说,GitHub High Scores 会给你一个类似小霸王时代的游戏界面,展示出你的仓库的贡献者。

这只是 commit 数量的统计,那么关于代码行数的统计呢?有非常多的 CLI 项目可以帮助你分析 Git 数据。

@arzzen 的 git-quick-stats 会展示出仓库活动的总览。你可以查看每月、每天、每小时的共享。

$ git-quick-stats
    
Stanley Goldman <StanleyGoldman@github.com>:
insertions:    1800 (1%)
deletions:     1455 (1%)
files:         221 (2%)
commits:       108 (3%)
lines changed: 3255
first commit:  Thu Apr 6 09:33:53 2017 -0700
last commit:   Fri Jul 27 14:14:51 2018 -0400

@casperdcl 的 git-fame 也可以统计对仓库的贡献,包括代码行数统计。

$ git-fame
    
Total commits: 5190
Total ctimes: 17640
Total files: 1058
Total loc: 113683
| Author                   |   loc |   coms |   fils |  distribution   |
|:-------------------------|------:|-------:|-------:|:----------------|
| Stanley Goldman          | 75955 |   3164 |    414 | 66.8/61.0/39.1  |
| Andreia Gaita            | 34438 |   1549 |    477 | 30.3/29.8/45.1  |
| Emil "AngryAnt" Johansen |  2230 |    191 |     35 | 2.0/ 3.7/ 3.3   |
| Don Okuda                |   312 |    195 |     51 | 0.3/ 3.8/ 4.8   |
| Meaghan Lewis            |   228 |     15 |     31 | 0.2/ 0.3/ 2.9   |

@IonicaBizau 的 git-stats 包含了所有你能想到的有趣数据,包括贡献和饼状图。

但是,希望你和你的团队明白,比起代码行数和提交量来说,你的价值由更多、更可靠的衡量指标来决定。如果你每个周末都在为代码数量和提交量不足而发愁,那么是时候换个新工作了。

最后的话

你的点赞会给我一天好心情,如果能顺手 来个 star 就更完美了。