github

github初学者使用教程

搜索可能是在海量资源中找到目标的最佳途径,在 GitHub 中同样如此。搜索引擎中检索 GitHub + 关键词 这种方法不必再说,而更好的则是使用 GitHub 中专门的搜索功能。

打开 GitHub 任意页面,在最上方的搜索框中输入关键词,并点击「All GitHub」按钮,搜索结果就会显示出来。页面右侧上方是搜索范围,下方是涉及的编程语言,点击就可以切换。左侧的搜索结果列表,包含每项的仓库名称、简介、编程语言以及标星(Star)数量。

github初学者使用教程

GitHub 全站搜索

这里,简单说明下 GitHub 中的「仓库」概念。在 GitHub 上,每个用户都可以创建、管理多个仓库。仓库用来存放一个项目相关的各种文件夹和文件,并且配备有问题反馈、修改历史、版本发布等各种功能。举个例子,Windows 优质软件合集仓库的链接是 https://github.com/Awesome-Windows/Awesome ,其中最后的 Awesome 是仓库名称。Awesome-Windows部分则是创建者的用户名,去除仓库名称后的 https://github.com/Awesome-Windows 链接对应的是该用户的主页,可以查看用户信息、拥有的仓库、活跃动态等。

如果是在一个仓库页面中进行搜索,那么除了「all GitHub」还有个「In this repository」选项,后者则是在当前仓库的代码文件、交流问题以及 Wiki 等各个部分中搜索。比如,打开 鼠须管输入法项目仓库,想要找到与 配置 相关的讨论、说明或文件,手动翻阅肯定不是好办法,那么就可以使用这个选项。

github初学者使用教程

仓库中搜索

此外,在用户主页中搜索时,「In this repository」位置显示的则是「In this user」,也就是在这个用户的所有公开仓库中搜索。

项目仓库的方方面面

找到满足需求的项目仓库后,怎么使用,有哪些构成部分和值得注意的地方,这一节以 鼠须管输入法项目仓库 为例给大家讲明白。

github初学者使用教程

GitHub 项目仓库页面

我们按照由上到下的顺序来看,主要有这些部分:

值得注意的是右侧的标星(Star)数量,可以理解为「点赞」,自然是越多越受欢迎。左侧显示仓库所属的用户,以及仓库名称。

一系列功能页面入口,一般用到的是前两个。默认显示的正是第一个 Code 页面,也就是这个仓库中存储的各种代码文件,紧挨着的 Issues 页面用来反馈、交流问题。下方是这个仓库的简介、关键词等信息。

这一行比较有用的是第一项 Commits 提交,也就是这个仓库中文件的修改历史,包含每次修改的说明、内容与时间等信息,374 代表修改次数;第三项 Releases 版本发布,打开就是供下载的软件版本,29 同样是版本发布次数。

这个仓库中的文件列表,注意右侧标出的日期信息,是该仓库最后更新的日期,我们可以借此判断这个项目是否还在更新、内容是否过时。每个文件或文件夹同样有对应的日期信息。

最下方的则是这个仓库的详细说明,也就是仓库根目录中名为 README 的文件内容,通常为 Markdown 格式。

按需下载的多种方式

下载使用才是最终的目的,GitHub 仓库涉及的下载可分为四种,根据仓库中的项目类型以及个人的需求进行选择:

(1) 整个仓库的下载。像 清华大学计算机系课程攻略 这种仓库内容分散在各个文件中,而且部分文件还是无法在线查看的 Word 文档格式,全部下载后更方便。我们可以点击右侧的「clone or download」按钮,然后点击「Download ZIP」从而得到一个包含整个仓库中所有文件的 ZIP 压缩文件。

github初学者使用教程

仓库下载

(2) 单个文件的下载。有时候我们只需要其中一个文件,那么可以在文件列表中点击想要下载的文件,打开它的显示页面。此时的情况分为两种,如果该文件属于代码、Markdown 等文本文件类型,我们点击右侧的 「Raw」后会将该文件在浏览器中直接显示,使用浏览器的保存网页功能(「文件」-「保存」,或者快捷键 ⌃Ctrl / ⌘Command-S )就可以了。而对于 Word 文档、图片、大型 PDF 等其他类型文件,右侧会直接显示 「Download」下载按钮,点击即可。

github初学者使用教程

单个文件下载的两种情况

(3) 文件夹下载。依旧以 清华大学计算机系课程攻略 仓库为例,我现在只需要研究生阶段的内容,怎么单独下载这个文件夹呢。我们可以这么做:

在文件列表中点击该文件夹,打开这个文件夹的页面。

在浏览器地址栏中,复制该文件夹对应的网址。

打开 在线下载工具,填入网址,点击「Download」即可。

github初学者使用教程

GitHub 文件夹在线下载工具

(4) 发布版本下载。应用软件、Alfred Workflow 等类型的项目,通常会不断发布供用户使用的版本。这时,点击仓库页面中间的「Release」,就可以看到发布的各个版本。对于每个版本,显示有版本号、更新说明、及供下载的文件。其中,Source code 是发布该版本时的仓库内容,一般为相应的源代码文件。

github初学者使用教程

GitHub 版本发布页面

反馈问题、交流建议

无论是资源合集,或是应用软件项目,发现问题、提出意见建议都是很常见的情况。开源项目也需要大家一起贡献力量,添砖加瓦,让项目更为完善。前文中提到的 「Issues」页面正是用来处理这些事务的。

点击项目页面中的「Issues」按钮,打开问题列表页面。默认情况下, 这里会显示尚未处理完毕的问题。其实与其说是 Issue (问题)列表,倒不如说是个小论坛,围绕项目的各种交流都在这里展开。一条「帖子」对应一个话题,交流完毕就可以关闭归档。

github初学者使用教程

GitHub Issues 页面

在提出问题或建议之前,我们都应该先看下是否已经有人提出并有了一定进展,避免重复,甚至可能已经有了结果。对于数量较少,可以点击依次查看,点开「Closed」 查看已经处理完毕的问题列表。如果数量较多,我们最好还是借助于搜索。

搜索框中,默认为「is:issue is:open 」,也就是显示处于打开状态的 Issue 列表。搜索时,删去「is:open」,然后输入搜索关键词,按下回车键就可以在所有的问题中展开搜索。

如果没有找到相关的帖子,我们可以在登录后点击右侧的「New issue」按钮新建一条,然后输入标题与内容,点击「Submit new issue」确认提交。这里的内容与回复都支持 Markdown 格式,也可以直接拖动图片、压缩包等格式的文件到输入框中。

在发帖交流时,我们应该注意几点。如果有 Issue 格式指引应该尽量遵循,通常是按照要求填入问题相关的各种详细信息,有利于更为清晰地描述与解决问题。另外,一个帖子应该对应一项问题或建议,避免将多个混在一起不利于进行管理。

及时获知更新

开源项目的一大特点就是可能会有许多人的共同参与,不断更新。那么,如果一个 GitHub 项目更新了,我们该怎么获知呢?可以在下面这些方法中选择:

GitHub 通知中心

登录后,点击页面右上角的 铃铛图标,可以打开通知中心。

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」订阅,新的回复等动态消息就会出现在通知中心里。

github初学者使用教程

单条 Issue 订阅

通知邮件

对于非程序员的普通用户,一般没有定期浏览 GitHub 的习惯,所以通知中心的信息也无法及时看到。那么,我们还能够通过邮件方式接收通知。打开 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」就可以了。

github初学者使用教程

IFTTT 服务

其他

如果想要充分地利用 GitHub 进行项目管理、参与开源项目、与他人协作,那么就需要更为深入地学习 GitHub 与 Git 命令。