GitHub 秘籍
GitHub 秘籍
本秘籍收錄了一些Git和Github非常酷同時又少有人知的功能。靈感來自于Zach Holman在2012年Aloha Ruby Conference和2013年WDCNZ上所做的演講:Git and GitHub Secrets(slides)和More Git and GitHub Secrets(slides)。
Read this in other languages:?English,????,?日本語,?簡體中文.
忽略空白字符變化
在任意diff頁面的URL后加上?w=1,可以去掉那些只是空白字符的變化,使你能更專注于代碼的變化。
Diff without whitespace
詳見 GitHub secrets.
調整Tab字符所代表的空格數
在diff或者file頁面的URL后面加上?ts=4,這樣當顯示tab字符的長度時就會是4個空格的長度,不再是默認的8個空格。ts后面的數字還可以根據你個人的偏好進行修改。不過,這個小訣竅在Gists頁面和raw file頁面不起作用。
下面是我們在Go語言的source file頁面URL后加?ts=4前的例子:
Before, tab space example
然后是我們添加?ts=4后的例子:
After, tab space example
查看某個用戶的Commit歷史
查看某個用戶的所有提交歷史,只需在commits頁面URL后加上?author=username。
DHH commit history
深入了解提交視圖之間的區別
克隆某個倉庫
當我們克隆某一資源時,可以不要那個.git后綴。
更多對 Git?clone?命令的介紹.
將某個分支與其他所有分支進行對比
當你點擊某個倉庫的分支(Branches)選項卡時
你會看到一個包含所有未合并的分支的列表。
你可以在這里查看比較(Compare)頁面或點擊刪除某個分支。
Compare branches not merged into master in jquery/jquery repo - https://github.com/jquery/jquery/branches
有的時候我們需要將多個分支與一個非主分支(master)進行對比,此時可以通過在URL后加入要比較的分支名來實現:
Compare branches not merged into `1.x-master` in jquery/jquery repo - https://github.com/jquery/jquery/branches/1.x-master
可以在URL后加上?merged=1來查看已經合并了的分支。
Compare branches merged in to `1.x-master` in jquery/jquery repo - https://github.com/jquery/jquery/branches/1.x-master?merged=1
你可以使用這個界面來替代命令行直接刪除分支。
比較分支
如果我們想要比較兩個分支,可以像下面一樣修改URL:
其中{range} = master...4-1-stable
例如:
Rails branch compare example
{range}還可以使用下面的形式:
日期格式?YYYY-DD-MM
Another compare example
...這樣你就能查看master分支上一段時間或者指定日期內的改動。
了解更多關于比較跨時間段的提交記錄.
比較不同派生庫的分支
想要對派生倉庫(Forked Repository)之間的分支進行比較,可以像下面這樣修改URL實現:
例如:
Forked branch compare
Gists
Gists?給我們提供了一種不需要創建一個完整的倉庫,使小段代碼也可以工作的簡單方式。
Gist
Gist的URL后加上.pibb,可以得到更適合嵌入到其他網站的HTML版本。
Gists還可以像任何標準倉庫一樣被克隆。
Gists
進一步了解如何創建 gists.
Git.io
Git.io是Github的短網址服務。
Git.io
你可以通過Curl命令以普通HTTP協議使用它:
進一步了解 Git.io.
鍵盤快捷鍵
在倉庫主頁上提供了快捷鍵方便快速導航。
- 按?t?鍵會打開一個文件瀏覽器。
- 按?w?鍵會打開分支選擇菜單。
- 按?s?鍵會激活頂端的命令欄 (Command Bar)。
- 按?l?鍵編輯Issue列表頁的標簽。
- 查看文件內容時(如:https://github.com/tiimgreen/github-cheat-sheet/blob/master/README.md),按?y?鍵將會凍結這個頁面,這樣就算代碼被修改了也不會影響你當前看到的。
按?查看當前頁面支持的快捷鍵列表:
Keyboard shortcuts
進一步了解如何使用 Command Bar.
整行高亮
在代碼文件地址后加上#L52或者單擊行號52都會將第52行代碼高亮顯示。
多行高亮也可以,比如用#L53-L60選擇范圍,或者按住?shift鍵,然后再點擊選擇的兩行。
整行高亮
用commit信息關閉Issue
如果某個提交修復了一個Issue,當提交到master分支時,提交信息里可以使用fix/fixes/fixed,close/closes/closed?或者?resolve/resolves/resolved等關鍵詞,后面再跟上Issue號,這樣就會關閉這個Issue。
這將會關閉Issue #12,并且在Issue討論列表里關聯引用這次提交。
進一步了解通過提交信息關閉Issue.
鏈接其他倉庫的Issue
如果你想引用到同一個倉庫中的一個Issue,只需使用井號?#?加上Issue號,這樣就會自動創建到此Issue的鏈接。
要鏈接到其他倉庫的Issue,就使用user_name/repo_name#ISSUE_NUMBER的方式,例如tiimgreen/toc#12。
設置CI對每條Pull Request都進行構建
如果配置正確,Travis CI會為每個你收到的Pull Request執行構建,就像每次提交也會觸發構建一樣。想了解更多關于Travis CI的信息,請看?Travis CI入門。
進一步了解 Commit status API.
Markdown文件高亮語法
例如,可以像下面這樣在你的Markdown文件里為Ruby代碼添加語法高亮:
效果像下面這樣:
Github使用?Linguist?做語言識別和語法高亮。你可以仔細閱讀?languages YAML file,了解有哪些可用的關鍵字。
進一步了解 GitHub Flavored Markdown.
表情符
可以在Pull Requests, Issues, 提交消息, Markdown文件里加入表情符。使用方法:name_of_emoji:
將輸出一個笑臉:
:smile:
Github支持的完整表情符號列表詳見emoji-cheat-sheet.com?或?scotch-io/All-Github-Emoji-Icons。
Github上使用最多的5個表情符號是:
靜態與動態圖片
注釋和README等文件里也可以使用圖片和GIF動畫:
所有圖片都緩存在Gitub,不用擔心你的站點不能訪問時就看不到圖片了。
在GitHub Wiki中嵌入圖片
有多種方法可以在Wiki頁面里嵌入圖片。既可以像上一條里那樣使用標準的Markdown語法,也可以像下面這樣指定圖片的高度或寬度:
結果:
快速引用
在注釋話題里引用之前某個人所說的,只需選中文本,然后按?r鍵,想要的就會以引用的形式復制到你的輸入框里。
進一步了解快速引用.
快速添加許可證
創建一個倉庫時,Github會為你提供一個預置的軟件許可列表:
對于已有的倉庫,可以通過web界面創建文件來添加軟件許可。輸入LICENSE作為文件名后,同樣可以從預置的列表中選擇一個作為模板。
這個技巧也適用于?.gitignore?文件。
進一步了解 open source licensing.
任務列表
Issues和Pull requests里可以添加復選框,語法如下(注意空白符):
當項目被選中時,它對應的Markdown源碼也被更新了:
進一步了解任務列表.
Markdown文件中的任務列表
在完全適配Markdown語法的文件中可以使用以下語法加入一個只讀的任務列表
- ?Mercury
- ?Venus
- ?Earth
- ?Moon
- ?Mars
- ?Deimos
- ?Phobos
進一步了解Markdown文件中的任務列表
相對鏈接
Markdown文件里鏈接到內部內容時推薦使用相對鏈接。
絕對鏈接會在URL改變時(例如重命名倉庫、用戶名改變,建立分支項目)被更新。使用相對鏈接能夠保證你的文檔不受此影響。
進一步了解相對鏈接.
GitHub Pages的元數據與插件支持
在Jekyll頁面和文章里,倉庫信息可在?site.github?命名空間下找到,也可以顯示出來,例如,使用?{{ site.github.project_title }}顯示項目標題。
Jemoji和jekyll-mentions插件為你的Jekyll文章和頁面增加了emoji和@mentions功能。
了解更多 GitHub Pages的元數據和插件支持.
查看YAML格式的元數據
許多博客站點,比如基于Jekyll的GitHub Pages,都依賴于一些文章頭部的YAML格式的元數據。Github會將其渲染成一個水平表格,方便閱讀。
進一步了解 在文檔里查看YAML元數據.
渲染表格數據
GitHub支持將?.csv?(comma分隔)和.tsv?(tab分隔)格式的文件渲染成表格數據。
進一步了解渲染表格數據.
Diffs
可渲染文檔的Diffs
提交和Pull Requests里包含有Github支持的可渲染文檔(比如Markdown)會提供source?和?rendered?兩個視圖功能。
點擊 "rendered" 按鈕,看看改動在渲染后的顯示效果。當你添加、刪除或修改文本時,渲染純文本視圖非常方便。
進一步了解渲染純文本視圖Diffs.
可變化地圖
當你在GitHub上查看一個包含地理數據的提交或pull request時,Github可以顯示數據變動的視覺表示。
進一步了解可比較地圖.
在diff中折疊與擴展代碼
你可以通過點擊diff邊欄里的?unfold?按鈕來多顯示幾行上下文。你可以一直點擊?unfold?按鈕直到顯示了文件的全部內容。這個功能在所有GitHub產生的diff界面都可以使用。
進一步了解擴展Diff上下文.
查看Pull Request的diff和patch
在Pull Request的URL后面加上?.diff?或?.patch?的擴展名就可以得到它的diff或patch文件,例如:
.diff?擴展會使用普通文本格式顯示如下內容:
渲染圖像發生的變動
GitHub可以顯示包括PNG、JPG、GIF、PSD在內的多種圖片格式并提供了幾種方式來比較這些格式的圖片文件版本間的不同。
查看更多關于渲染圖像變動的內容
Hub
Hub是一個對Git進行了封裝的命令行工具,可以幫助你更方便的使用Github。
這使得你可以像下面這樣進行克隆:
查看更多Hub提供的超酷命令.
貢獻內容的自動檢查
假設你想人們使用你的項目并給你的項目做出貢獻,你往往需要回答他們常見問題。這個項目是干什么用的?我如何使用它?允許我怎樣使用?我如何為項目出力?我怎樣配置開發環境?我怎么能保證新功能不會破壞已有的功能?
Friction是一個命令行腳本,用來檢查你的項目是否回答了這些問題。下面是示例輸出:
Friction 支持 MRI 2.1.0, MRI 2.0.0 和 MRI 1.9.3.
貢獻者指南
在你的倉庫的根目錄添加一個名為?CONTRIBUTING?的文件后,貢獻者在新建Issue或Pull Request時會看到這個文件的鏈接。
進一步了解貢獻者指南.
GitHub資源
| GitHub Explore | https://github.com/explore |
| GitHub Blog | https://github.com/blog |
| GitHub Help | https://help.github.com/ |
| GitHub Training | http://training.github.com/ |
| GitHub Developer | https://developer.github.com/ |
GitHub討論
| How GitHub Uses GitHub to Build GitHub | https://www.youtube.com/watch?v=qyz3jkOBbQY |
| Introduction to Git with Scott Chacon of GitHub | https://www.youtube.com/watch?v=ZDR433b0HJY |
| How GitHub No Longer Works | https://www.youtube.com/watch?v=gXD1ITW7iZI |
| Git and GitHub Secrets | https://www.youtube.com/watch?v=Foz9yvMkvlA |
| More Git and GitHub Secrets | https://www.youtube.com/watch?v=p50xsL-iVgU |
總結
- 上一篇: 每日Ubuntu小技巧 - 使用Team
- 下一篇: 魔兽怀旧服大英雄任务怎么做 大英雄任务流