鍍金池/ 教程/ Java/ Github 秘籍一
Github 秘籍三
Github 秘籍二
Git 資源
Github 秘籍一
Git 實(shí)用功能
Git 配置

Github 秘籍一

不比較空白字符

在任意 diff 頁(yè)面的 UR L后加上 ?w=1,可以去掉那些只是空白字符的改動(dòng),使你能更專注于代碼改動(dòng)。

http://wiki.jikexueyuan.com/project/github-secret/images/gh.png" alt="" />

調(diào)整 Tab 字符所代表的空格數(shù)

在 diff 或文件的 URL 后面加上?ts=4,這樣當(dāng)顯示 tab 字符的長(zhǎng)度時(shí)就會(huì)是 4 個(gè)空格的長(zhǎng)度,不再是默認(rèn)的 8 個(gè)空格。 ts 后面的數(shù)字還可以根據(jù)你個(gè)人的偏好進(jìn)行修改。這個(gè)技巧不適用于 Gists,或者以 Raw 格式查看文件, 但有瀏覽器擴(kuò)展插件可以幫你自動(dòng)調(diào)整: Chrome 擴(kuò)展 , Opera 擴(kuò)展

下面以一個(gè) Go 語(yǔ)言源文件為例,看看在 URL 里添加 ?ts=4 參數(shù)的效果。添加前:

http://wiki.jikexueyuan.com/project/github-secret/images/gh1.png" alt="" />

添加后的樣子:

http://wiki.jikexueyuan.com/project/github-secret/images/gh2.png" alt="" />

查看用戶的全部 Commit 歷史

在 Commits 頁(yè)面 URL 后加上 ?author={user} 查看用戶全部的提交。

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

http://wiki.jikexueyuan.com/project/github-secret/images/gh3.png" alt="" />

深入了解提交視圖之間的區(qū)別

倉(cāng)庫(kù)克隆

當(dāng)克隆倉(cāng)庫(kù)時(shí)可以不要那個(gè).git后綴。

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

更多對(duì) Git clone 命令的介紹

分支

將某個(gè)分支與其他所有分支進(jìn)行對(duì)比

當(dāng)你查看某個(gè)倉(cāng)庫(kù)的分支(Branches)頁(yè)面(緊挨著 Commits 鏈接)時(shí)

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

你會(huì)看到一個(gè)包含所有未合并的分支的列表。在這里你可以訪問(wèn)分支比較頁(yè)面或刪除某個(gè)分支。

http://wiki.jikexueyuan.com/project/github-secret/images/gh4.png" alt="" />

比較分支

如果要在 GitHub 上直接比較兩個(gè)分支,可以使用如下形式的 URL :

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

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

例如:

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

http://wiki.jikexueyuan.com/project/github-secret/images/gh5.png" alt="" />

{range}參數(shù)還可以使用下面的形式:

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

http://wiki.jikexueyuan.com/project/github-secret/images/gh6.png" alt="" />

diffpatch頁(yè)面里也可以比較分支:

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

了解更多關(guān)于基于時(shí)間的 Commit 比較

比較不同派生庫(kù)的分支

想要對(duì)派生倉(cāng)庫(kù)(Forked Repository)之間的分支進(jìn)行比較,可以使用如下的 URL:

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

例如:

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

http://wiki.jikexueyuan.com/project/github-secret/images/gh7.png" alt="" />

Gists

Gists 方便我們管理代碼片段,不必使用功能齊全的倉(cāng)庫(kù)。

http://wiki.jikexueyuan.com/project/github-secret/images/gh8.png" alt="" />

Gist 的 URL 后加上.pibb(像這樣)可以得到便于嵌入到其他網(wǎng)站的 HTML 代碼。

Gists 可以像任何標(biāo)準(zhǔn)倉(cāng)庫(kù)一樣被克隆。

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

http://wiki.jikexueyuan.com/project/github-secret/images/gh9.png" alt="" />

這意味著你可以像 Github 倉(cāng)庫(kù)一樣修改和更新 Gists :

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

但是, Gists 不支持目錄。所有文件都必須添加在倉(cāng)庫(kù)的根目錄下。 進(jìn)一步了解如何創(chuàng)建 Gists

Git.io

Git.io是 Github 的短網(wǎng)址服務(wù)。

http://wiki.jikexueyuan.com/project/github-secret/images/gh10.png" alt="" />

你可以通過(guò) Curl 命令以普通 HTTP 協(xié)議使用它:

$ 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/...

進(jìn)一步了解 Git.io

鍵盤快捷鍵

在倉(cāng)庫(kù)頁(yè)面上提供了快捷鍵方便快速導(dǎo)航。

  • t鍵打開(kāi)一個(gè)文件瀏覽器。
  • w鍵打開(kāi)分支選擇菜單。
  • s鍵聚焦光標(biāo)到當(dāng)前倉(cāng)庫(kù)的搜索框。此時(shí)按退格鍵就會(huì)從搜索當(dāng)前倉(cāng)庫(kù)切換到搜索整個(gè) Github 網(wǎng)站。
  • l鍵編輯 Issue 列表頁(yè)的標(biāo)簽。
  • 查看文件內(nèi)容時(shí)(如:https://github.com/tiimgreen/github-cheat-sheet/blob/master/README.md), 按y鍵將會(huì)凍結(jié)這個(gè)頁(yè)面,這樣就算代碼被修改了也不會(huì)影響你當(dāng)前看到的。

按?查看當(dāng)前頁(yè)面支持的快捷鍵列表:

http://wiki.jikexueyuan.com/project/github-secret/images/gh11.png" alt="" />

進(jìn)一步了解可用的搜索語(yǔ)法

整行高亮

在代碼文件地址 URL 后加上#L52或者單擊行號(hào) 52 都會(huì)將第 52 行代碼高亮顯示。

多行高亮也可以,比如用#L53-L60選擇范圍,或者按住 shift 鍵,然后再點(diǎn)擊選擇的兩行。

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

http://wiki.jikexueyuan.com/project/github-secret/images/gh12.png" alt="" />

用 Commit 信息關(guān)閉 Issue

如果某個(gè)提交修復(fù)了一個(gè)Issue,當(dāng)提交到master分支時(shí),提交信息里可以使用fix/fixes/fixed, close/closes/closed或者resolve/resolves/resolved等關(guān)鍵詞,后面再跟上Issue號(hào),這樣就會(huì)關(guān)閉這個(gè) Issue 。

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

這將會(huì)關(guān)閉 Issue #12,并且在 Issue 討論列表里關(guān)聯(lián)引用這次提交。

http://wiki.jikexueyuan.com/project/github-secret/images/gh13.png" alt="" />

進(jìn)一步了解通過(guò)提交信息關(guān)閉 Issue

鏈接其他倉(cāng)庫(kù)的 Issue

如果你想引用到同一個(gè)倉(cāng)庫(kù)中的一個(gè) Issue,只需使用井號(hào) # 加上 Issue 號(hào),這樣就會(huì)自動(dòng)創(chuàng)建到此 Issue 的鏈接。

要鏈接到其他倉(cāng)庫(kù)的 Issue ,就使用{user}/{repo}#ISSUE_NUMBER的方式,例如tiimgreen/toc#12

http://wiki.jikexueyuan.com/project/github-secret/images/gh14.png" alt="" />

鎖定項(xiàng)目對(duì)話功能

現(xiàn)在倉(cāng)庫(kù)的管理員和合作者可以將 Pull Requests 和 Issue 的評(píng)論功能關(guān)閉。

http://wiki.jikexueyuan.com/project/github-secret/images/gh15.png" alt="" />

這樣,不是項(xiàng)目合作者的用戶就不能在這個(gè)項(xiàng)目上使用評(píng)論功能。

http://wiki.jikexueyuan.com/project/github-secret/images/gh16.png" alt="" />

進(jìn)一步了解對(duì)話鎖定功能

設(shè)置 CI 對(duì)每條 Pull Request 都進(jìn)行構(gòu)建

如果配置正確,Travis CI 會(huì)為每個(gè)你收到的 Pull Request 執(zhí)行構(gòu)建,就像每次提交也會(huì)觸發(fā)構(gòu)建一樣。想了解更多關(guān)于 Travis CI 的信息,請(qǐng)參考 Travis CI 入門。

http://wiki.jikexueyuan.com/project/github-secret/images/gh17.png" alt="" />

進(jìn)一步了解提交狀態(tài) API

上一篇:Git 資源