作者: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-19
和visualization
的仓库:
- 所有被标记为
#chrome-extension
和#github
的仓库:
- 所有标记为
#unity
和#shader
的仓库:
- 所有被标记为
#minecraft
和#mod
的仓库:
你知道么: 为你的仓库申请主题可以帮助人们更好的发现它们,甚至为你的仓库做贡献?只要你在项目的主题区域,点一下按钮,并且输入几个关键字就可以了。
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 就更完美了。