GitHub 这个程序员行业的网站越来越多地出现在大众视野中,似乎时不时就能在少数派文章、各路微博和微信公众号中看到它的身影。随之出现的,往往是放在上面的各种内容丰富的资源合集、极客达人们制作的小工具,以及免费好用的开源软件等。
但是对于大众读者来说,一方面相对专业的网站界面,以及涉及的诸多名词和概念,让普通人使用起来常常有些困惑,另一方面,不少好用的技巧,可能也不了解。
现在,让我们跟随一个普通用户的使用视角,来看看怎么用 GitHub 来解决以下事情:
- 如何找到想要的资源
- 查看资源仓库的方方面面
- 仓库整体、单个文件怎么下载
- 怎么反馈问题,怎么提出建议
- 资源更新了,怎么及时获知
(本文面向大众读者,不涉及 Git 命令使用。)
快速找到想要的资源
搜索,可能是在海量资源中找到目标的最佳途径,在 GitHub 中同样如此。搜索引擎中检索 GitHub + 关键词 这种方法不必再说,而更好的则是使用 GitHub 中专门的搜索功能。
打开 GitHub 任意页面,在最上方的搜索框中输入关键词,并点击「All GitHub」按钮,搜索结果就会显示出来。页面右侧上方是搜索范围,下方是涉及的编程语言,点击就可以切换。左侧的搜索结果列表,包含每项的仓库名称、简介、编程语言以及标星(Star)数量。
GitHub 全站搜索
这里,简单说明下 GitHub 中的「仓库」概念。在 GitHub 上,每个用户都可以创建、管理多个仓库。仓库用来存放一个项目相关的各种文件夹和文件,并且配备有问题反馈、修改历史、版本发布等各种功能。举个例子,Windows 优质软件合集仓库的链接是
https://github.com/Awesome-Windows/Awesome ,其中最后的 Awesome 是仓库名称。Awesome-Windows部分则是创建者的用户名,去除仓库名称后的
https://github.com/Awesome-Windows 链接对应的是该用户的主页,可以查看用户信息、拥有的仓库、活跃动态等。
如果是在一个仓库页面中进行搜索,那么除了「all GitHub」还有个「In this repository」选项,后者则是在当前仓库的代码文件、交流问题以及 Wiki 等各个部分中搜索。比如,打开 鼠须管输入法项目仓库,想要找到与 配置 相关的讨论、说明或文件,手动翻阅肯定不是好办法,那么就可以使用这个选项。
仓库中搜索
此外,在用户主页中搜索时,「In this repository」位置显示的则是「In this user」,也就是在这个用户的所有公开仓库中搜索。
项目仓库的方方面面
找到满足需求的项目仓库后,怎么使用,有哪些构成部分和值得注意的地方,这一节以 鼠须管输入法项目仓库 为例给大家讲明白。
GitHub 项目仓库页面
我们按照由上到下的顺序来看,主要有这些部分:
- 值得注意的是右侧的标星(Star)数量,可以理解为「点赞」,自然是越多越受欢迎。左侧显示仓库所属的用户,以及仓库名称。
- 一系列功能页面入口,一般用到的是前两个。默认显示的正是第一个 Code 页面,也就是这个仓库中存储的各种代码文件,紧挨着的 Issues 页面用来反馈、交流问题。下方是这个仓库的简介、关键词等信息。
- 这一行比较有用的是第一项 Commits 提交,也就是这个仓库中文件的修改历史,包含每次修改的说明、内容与时间等信息,374 代表修改次数;第三项 Releases 版本发布,打开就是供下载的软件版本,29 同样是版本发布次数。
- 这个仓库中的文件列表,注意右侧标出的日期信息,是该仓库最后更新的日期,我们可以借此判断这个项目是否还在更新、内容是否过时。每个文件或文件夹同样有对应的日期信息。
- 最下方的则是这个仓库的详细说明,也就是仓库根目录中名为 README 的文件内容,通常为 Markdown 格式。
按需下载的多种方式
下载使用才是最终的目的,GitHub 仓库涉及的下载可分为四种,根据仓库中的项目类型以及个人的需求进行选择:
(1) 整个仓库的下载。像 清华大学计算机系课程攻略 这种仓库内容分散在各个文件中,而且部分文件还是无法在线查看的 Word 文档格式,全部下载后更方便。我们可以点击右侧的「clone or download」按钮,然后点击「Download ZIP」从而得到一个包含整个仓库中所有文件的 ZIP 压缩文件。
仓库下载
(2) 单个文件的下载。有时候我们只需要其中一个文件,那么可以在文件列表中点击想要下载的文件,打开它的显示页面。此时的情况分为两种,如果该文件属于代码、Markdown 等文本文件类型,我们点击右侧的 「Raw」后会将该文件在浏览器中直接显示,使用浏览器的保存网页功能(「文件」-「保存」,或者快捷键 ⌃Ctrl / ⌘Command-S )就可以了。而对于 Word 文档、图片、大型 PDF 等其他类型文件,右侧会直接显示 「Download」下载按钮,点击即可。
单个文件下载的两种情况
(3) 文件夹下载。依旧以 清华大学计算机系课程攻略 仓库为例,我现在只需要研究生阶段的内容,怎么单独下载这个文件夹呢。我们可以这么做:
- 在文件列表中点击该文件夹,打开这个文件夹的页面。
- 在浏览器地址栏中,复制该文件夹对应的网址。
- 打开 在线下载工具,填入网址,点击「Download」即可。
GitHub 文件夹在线下载工具
(4) 发布版本下载。应用软件、Alfred Workflow 等类型的项目,通常会不断发布供用户使用的版本。这时,点击仓库页面中间的「Release」,就可以看到发布的各个版本。对于每个版本,显示有版本号、更新说明、及供下载的文件。其中,Source code 是发布该版本时的仓库内容,一般为相应的源代码文件。
GitHub 版本发布页面
反馈问题、交流建议
无论是资源合集,或是应用软件项目,发现问题、提出意见建议都是很常见的情况。开源项目也需要大家一起贡献力量,添砖加瓦,让项目更为完善。前文中提到的 「Issues」页面正是用来处理这些事务的。
点击项目页面中的「Issues」按钮,打开问题列表页面。默认情况下, 这里会显示尚未处理完毕的问题。其实与其说是 Issue (问题)列表,倒不如说是个小论坛,围绕项目的各种交流都在这里展开。一条「帖子」对应一个话题,交流完毕就可以关闭归档。
GitHub Issues 页面
在提出问题或建议之前,我们都应该先看下是否已经有人提出并有了一定进展,避免重复,甚至可能已经有了结果。对于数量较少,可以点击依次查看,点开「Closed」 查看已经处理完毕的问题列表。如果数量较多,我们最好还是借助于搜索。
搜索框中,默认为「is:issue is:open 」,也就是显示处于打开状态的 Issue 列表。搜索时,删去「is:open」,然后输入搜索关键词,按下回车键就可以在所有的问题中展开搜索。
如果没有找到相关的帖子,我们可以在登录后点击右侧的「New issue」按钮新建一条,然后输入标题与内容,点击「Submit new issue」确认提交。这里的内容与回复都支持 Markdown 格式,也可以直接拖动图片、压缩包等格式的文件到输入框中。
在发帖交流时,我们应该注意几点。如果有 Issue 格式指引应该尽量遵循,通常是按照要求填入问题相关的各种详细信息,有利于更为清晰地描述与解决问题。另外,一个帖子应该对应一项问题或建议,避免将多个混在一起不利于进行管理。
及时获知更新
开源项目的一大特点就是可能会有许多人的共同参与,不断更新。那么,如果一个 GitHub 项目更新了,我们该怎么获知呢?可以在下面这些方法中选择:
GitHub 通知中心
登录后,点击页面右上角的 铃铛图标,可以打开通知中心。
GitHub 通知中心
然后我们来看如何订阅一个项目的各种更新动态。
Watch 菜单
对于任意项目仓库,点击页面右上角 「Watch」能看到有四个选项:
- 「Not watching」,意为没有监控,默认选项。只有我们参与到该项目时才会被通知,比如提交的 Issue 被回复、被人提到(@)等情况。
- 「Releases only」意为只关注版本发布。新版本发布的消息会在通知中心显示,适用于应用软件项目。
- 「Watching」意为监控中。该仓库所有的动态消息都会出现在 GitHub 通知中心,包括版本发布、任意 Issue 提交与回复、仓库文件改动等等。
- 「Ignoring」意为忽略该仓库。任何动态都不会发起通知。
对于应用软件、Alfred Workflow 等这些发布版本的项目,通常选择「Release only」,这样就可以在 GitHub 通知中心看到新版本的发布消息。
而 Windows 优质软件、清华大学计算机课程等资源合集类的项目,并不会发布版本,更新的只是仓库内的项目文件。我们需要选择「Watching」。但是,就像前文中所说,不只是项目文件更新,任意 Issue 的提交和回复也会通知我们,这样消息混杂,体验不好,后文中另有解决办法。
此外,对于某条感兴趣的 issue,如果只是想及时知道后续的讨论和进展,回复个「马克/ Mark」可能并不是什么好办法。我们可以在登录后点击该 issue 页面右侧的 「Subscribe」订阅,新的回复等动态消息就会出现在通知中心里。
单条 Issue 订阅
通知邮件
对于非程序员的普通用户,一般没有定期浏览 GitHub 的习惯,所以通知中心的信息也无法及时看到。那么,我们还能够通过邮件方式接收通知。打开 GitHub 账户中的 通知设置,我们可以选择哪些消息会发出邮件。
GitHub 通知设置
我们需要关注图中右侧的区域:
- Participating 即参与的交流,如 issue 回复、被他人提到(@)等,选择通过邮件还是网页上的通知中心发送消息。
- Watching 即监控设置,也就是上文中介绍的 「Releases only」版本发布、「Watching」监控任意动态,选择邮件或网页通知。
RSS 与 IFTTT
相信少数派的读者对于 RSS 订阅都不陌生,GitHub 提供了几种实用的 RSS 链接,我们可以借此获得更为精细的通知消息。
GitHub 支持的 RSS 链接类型:
- 版本发布:https://github.com/用户名/仓库名称/releases.atom 。
- 文件修改:https://github.com/用户名/仓库名称/commits.atom ,适合于 Windows 优质软件等资源合集项目,可以及时获知项目有什么改动、又加入了什么资源等。
- 用户动态:https://github.com/用户名.atom ,用于关注某个用户的动态消息。
- 个人时间线:https://github.com/本人用户名.private.atom?token=密钥 ,也就是类似于微博那样的由关注的用户动态所组成的消息流。具体的链接可以登录后在 GitHub 首页 最下方点击「Subscribe to your news feed」获得。
此外,RSSHub 提供了额外的 RSS 支持:
- 用户仓库动态:https://rsshub.app/github/repos/用户名
- Issue 动态:https://rsshub.app/github/issue/用户名/仓库名称
更多 RSS 链接类型可以查看 RSSHub 文档。
除了直接使用 RSS 订阅,我们还能借助 IFTTT 将 RSS 消息转为邮件、Telegram、手机通知等。
在登录 IFTTT 后,选择需要的通知方式,打开下面的链接:
- RSS 转邮件:https://ifttt.com/applets/wyiP45c8-rss-to-email
- RSS 转 Telegram:https://ifttt.com/applets/maxWVgiq-rss-to-telegram ,需要先绑定 Telegram
然后,点击页面中的「Turn on」按钮,接着填入 RSS 链接,点击 「Save」就可以了。
IFTTT 服务
其他
如果想要充分地利用 GitHub 进行项目管理、参与开源项目、与他人协作,那么就需要更为深入地学习 GitHub 与 Git 命令。