离线下载
PDF版 ePub版

Tim Green · 更新于 2018-11-28 11:00:43

Github 秘籍一

不比较空白字符

在任意 diff 页面的 UR L后加上 ?w=1,可以去掉那些只是空白字符的改动,使你能更专注于代码改动。

调整 Tab 字符所代表的空格数

在 diff 或文件的 URL 后面加上?ts=4,这样当显示 tab 字符的长度时就会是 4 个空格的长度,不再是默认的 8 个空格。 ts 后面的数字还可以根据你个人的偏好进行修改。这个技巧不适用于 Gists,或者以 Raw 格式查看文件, 但有浏览器扩展插件可以帮你自动调整: Chrome 扩展Opera 扩展

下面以一个 Go 语言源文件为例,看看在 URL 里添加 ?ts=4 参数的效果。添加前:

添加后的样子:

查看用户的全部 Commit 历史

在 Commits 页面 URL 后加上 ?author={user} 查看用户全部的提交。

https://github.com/rails/rails/commits/master?author=dhh

深入了解提交视图之间的区别

仓库克隆

当克隆仓库时可以不要那个.git后缀。

$ git clone https://github.com/tiimgreen/github-cheat-sheet

更多对 Git clone 命令的介绍

分支

将某个分支与其他所有分支进行对比

当你查看某个仓库的分支(Branches)页面(紧挨着 Commits 链接)时

https://github.com/{user}/{repo}/branches

你会看到一个包含所有未合并的分支的列表。在这里你可以访问分支比较页面或删除某个分支。

比较分支

如果要在 GitHub 上直接比较两个分支,可以使用如下形式的 URL :

https://github.com/{user}/{repo}/compare/{range}

其中{range} = master...4-1-stable

例如:

https://github.com/rails/rails/compare/master...4-1-stable

{range}参数还可以使用下面的形式:

https://github.com/rails/rails/compare/master@{1.day.ago}...master
https://github.com/rails/rails/compare/master@{2014-10-04}...master

日期格式YYYY-MM-DD

diffpatch页面里也可以比较分支:

https://github.com/rails/rails/compare/master...4-1-stable.diff
https://github.com/rails/rails/compare/master...4-1-stable.patch

了解更多关于基于时间的 Commit 比较

比较不同派生库的分支

想要对派生仓库(Forked Repository)之间的分支进行比较,可以使用如下的 URL:

https://github.com/user/repo/compare/{foreign-user}:{branch}...{own-branch}

例如:

https://github.com/rails/rails/compare/byroot:master...master

Gists

Gists 方便我们管理代码片段,不必使用功能齐全的仓库。

Gist 的 URL 后加上.pibb(像这样)可以得到便于嵌入到其他网站的 HTML 代码。

Gists 可以像任何标准仓库一样被克隆。

$ git clone https://gist.github.com/tiimgreen/10545817

这意味着你可以像 Github 仓库一样修改和更新 Gists :

$ git commit
$ git push
Username for 'https://gist.github.com':
Password for 'https://tiimgreen@gist.github.com':

但是, Gists 不支持目录。所有文件都必须添加在仓库的根目录下。 进一步了解如何创建 Gists

Git.io

Git.io是 Github 的短网址服务。

你可以通过 Curl 命令以普通 HTTP 协议使用它:

$ curl -i http://git.io -F "url=https://github.com/..."
HTTP/1.1 201 Created
Location: http://git.io/abc123

$ curl -i http://git.io/abc123
HTTP/1.1 302 Found
Location: https://github.com/...

进一步了解 Git.io

键盘快捷键

在仓库页面上提供了快捷键方便快速导航。

  • t键打开一个文件浏览器。
  • w键打开分支选择菜单。
  • s键聚焦光标到当前仓库的搜索框。此时按退格键就会从搜索当前仓库切换到搜索整个 Github 网站。
  • l键编辑 Issue 列表页的标签。
  • 查看文件内容时(如:https://github.com/tiimgreen/github-cheat-sheet/blob/master/README.md), 按y键将会冻结这个页面,这样就算代码被修改了也不会影响你当前看到的。

按?查看当前页面支持的快捷键列表:

进一步了解可用的搜索语法

整行高亮

在代码文件地址 URL 后加上#L52或者单击行号 52 都会将第 52 行代码高亮显示。

多行高亮也可以,比如用#L53-L60选择范围,或者按住 shift 键,然后再点击选择的两行。

https://github.com/rails/rails/blob/master/activemodel/lib/active_model.rb#L53-L60

用 Commit 信息关闭 Issue

如果某个提交修复了一个Issue,当提交到master分支时,提交信息里可以使用fix/fixes/fixed, close/closes/closed或者resolve/resolves/resolved等关键词,后面再跟上Issue号,这样就会关闭这个 Issue 。

$ git commit -m "Fix screwup, fixes #12"

这将会关闭 Issue #12,并且在 Issue 讨论列表里关联引用这次提交。

进一步了解通过提交信息关闭 Issue

链接其他仓库的 Issue

如果你想引用到同一个仓库中的一个 Issue,只需使用井号 # 加上 Issue 号,这样就会自动创建到此 Issue 的链接。

要链接到其他仓库的 Issue ,就使用{user}/{repo}#ISSUE_NUMBER的方式,例如tiimgreen/toc#12

锁定项目对话功能

现在仓库的管理员和合作者可以将 Pull Requests 和 Issue 的评论功能关闭。

这样,不是项目合作者的用户就不能在这个项目上使用评论功能。

进一步了解对话锁定功能

设置 CI 对每条 Pull Request 都进行构建

如果配置正确,Travis CI 会为每个你收到的 Pull Request 执行构建,就像每次提交也会触发构建一样。想了解更多关于 Travis CI 的信息,请参考 Travis CI 入门

进一步了解提交状态 API

上一篇: 关于 下一篇: Github 秘籍二