你真的會使用Github嗎?

快捷鍵

  • r快速引用
    你能夠選中別人的評論文字,而後按r,這些內容會以引用的形式被複制在文本框中:javascript

image

  • t:搜索文件css

  • s:光標定位到搜索窗口java

  • w:選擇分支python

  • g n Go to Notificationsreact

  • g d Go to Dashboardandroid

  • g c Go to Codeios

  • g i Go to Issuesgit

  • g p Go to Pull Requestsgithub

  • g w Go to Wikiweb

  • ?:
    若是要查看全部的快捷鍵,能夠在鍵盤上按下 ?

image

watch vs Star vs Fork

watch

watch翻譯過來能夠稱之爲觀察,點擊watch能夠看到以下的列表。

image

默認每個用戶都是處於Not watching的狀態,當你選擇Watching,表示你之後會關注這個項目的全部動態,之後只要這個項目發生變更,如被別人提交了pull request、被別人發起了issue或者issue裏面有新的討論等等狀況,

你都會在本身的我的通知中心,收到一條通知消息,若是你設置了我的郵箱,那麼你的郵箱也可能收到相應的郵件。

因此,watch要謹慎使用,否則你的郵箱會被垃圾郵件佔滿。

image

若是你不想接受這些通知,那麼點擊 Not Watching 便可。

另外這裏有一篇文章講 如何正確接收 GitHub 的消息郵件,很不錯的一篇文章,推薦你們看看。

star

star 翻譯過來應該是星星,可是這個翻譯沒任何具體意義,這裏解釋爲關注或者點贊更合適,當你點擊 star,表示你喜歡這個項目或者通俗點,能夠把他理解成朋友圈的點贊吧,表示對這個項目的支持。

不過相比朋友圈的點贊,github 裏面會有一個列表,專門收集了你全部 star 過的項目,

點擊 github 我的頭像,能夠看到 your star的條目,點擊就能夠查看你 star 過的全部項目了。以下圖

image

不過,在你的 star 列表很容易出現這樣的問題。就是你可能 star 成百上千個項目怎麼辦。

這時,若是 github 能夠提供一個分類功能該多好,就像微博網頁版的收藏,你在收藏的時候能夠設置 tag,

這樣設置的好處是,之後再次查找項目時,能夠根據歸類查找,可是不知道 github 的產品經理是怎麼想的,

fork

當選擇 fork,至關於你本身有了一份原項目的拷貝,固然這個拷貝只是針對當時的項目文件,若是後續原項目文件發生改變,你必須經過其餘的方式去同步。

通常來講,咱們不須要使用 fork 這個功能,至少我通常不會用,除非有一些項目,可能存在 bug 或者能夠繼續優化的地方,你想幫助原項目做者去完善這個項目

,那麼你能夠 fork 一份項目下來,而後本身對這個項目進行修改完善,當你以爲項目沒問題了,你就能夠嘗試發起 pull request給原項目做者了,

而後就靜靜等待他的 merge。

我看到不少人錯誤的在使用 fork。不少人把 fork 當成了收藏同樣的功能,包括一開始使用 github 的我,每次看到一個好的項目就先 fork,

由於這樣,就能夠個人 repository(倉庫)列表下查看 fork 的項目了。其實你徹底可使用 star 來達到這個目的。

搜索

指定搜索範圍

  • octocat in:file 搜索文件中有octocat的代碼

  • octocat in:path 搜索路徑中有octocat的代碼

  • octocat in:file,path 搜索路徑中有octocat的代碼或者文件中有octocat的代碼

  • display language:sass 搜索用scss寫的包含display的代碼

  • Integer 搜索包含Integer的字段 搜索mozilla用戶下用markdown寫的代碼

經過語言搜索代碼

  • element language:xml size:100 搜索大小爲100字節的xml代碼

  • user:mozilla language:markdown 搜索mozilla用戶下用markdown寫的代碼

經過fork的數量或者是否有父節點的方式搜索

  • android language:java fork:true 搜索用java寫的 android相關的代碼而且被fork過

  • function size:>10000 language:python 搜索與function相關的python代碼,文件大小超過10kb

按照目錄結構搜索

  • console path:app/public language:javascript 在app/public directory目錄下搜索console關鍵字

  • form path:cgi-bin language:perl 搜索cgi-bin目錄下包含form的perl代碼

經過文件名搜索

  • filename:.vimrc commands 搜索 文件名匹配.vimrc 而且包含commands的代碼

  • minitest filename:test_helper path:test language:ruby 在test目錄中搜索包含minitest且文件名匹配"test_helper"的ruby代碼

根據擴展名來搜索代碼

  • form path:cgi-bin extension:pm 搜索cgi-bin目錄下以pm爲擴展名的代碼

  • icon size:>200000 extension:css 搜索超過200kb包含icon的css代碼

經過用戶或者組織來查找

  • user:github extension:rb 查找github用戶中以rb爲擴展的代碼

  • repo:mozilla/shumway extension:as搜索mozilla的shumway以as爲擴展的代碼

根據star數搜索

  • react starts:>300搜索react相關的,且star數量大於300的項目

搜索結果能夠根據須要排序網站上提供了排序的選項,更多搜索需求能夠選擇高級搜索。

發現優秀項目

關注大牛

GitHub 主頁有一個相似微博的時間線功能,全部你關注的人的動做,好比 star、fork 了某個項目都會出如今你的時間線上,這種方式適合我這種比較懶的人,不用主動去找項目,而這種基本是我天天獲取信息的一個很重要的方式。
image

Trending

點擊下圖的 Explore 菜單到「發現」頁面,

image

這個 Trending 頁面是幹嗎的呢?直譯過來就是趨勢的意思,就是說這個頁面你能夠看到最近一些熱門的開源項目,這個頁面能夠算是不少人主動獲取一些開源項目最好的途徑,能夠選擇「當天熱門」、「一週以內熱門」和「一月以內熱門」來查看,而且還能夠分語言類來查看。
image

awesome

GitHub 上有各類 awesome 系列,簡單來講就是這個系列蒐羅整理了 GitHub 上各領域的資源大彙總,好比有 awesome-android, awesome-ios, awesome-java, awesome-python 等等等,就不截圖了,大家自行去感覺。

Trending repositories on GitHub today

浩如煙海的庫中,如何知道哪些語言有哪些優秀的庫,有哪些優秀的開發者,github官方貼心出品,這裏Trending repositories on GitHub today · GitHub 而且一天固定時間更新一波,
image

url後綴

不比較空白字符

在任意 diff 頁面的 UR L後加上 ?w=1,能夠去掉那些只是空白字符的改動,使你能更專一於代碼改動。

Diff without whitespace

詳見 GitHub secrets.

調整 Tab 字符所表明的空格數

在 diff 或文件的 URL 後面加上 ?ts=4 ,這樣當顯示 tab 字符的長度時就會是 4 個空格的長度,再也不是默認的 8 個空格。 ts 後面的數字還能夠根據你我的的偏好進行修改。這個技巧不適用於 Gists,或者以 Raw 格式查看文件, 但有瀏覽器擴展插件能夠幫你自動調整: Chrome 擴展Opera 擴展

下面以一個 Go 語言源文件爲例,看看在 URL 裏添加 ?ts=4 參數的效果。添加前:

Before, tab space example

... 添加後的樣子:

After, tab space example

查看用戶的所有 Commit 歷史

在 Commits 頁面 URL 後加上 ?author={user} 查看用戶所有的提交。

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

DHH commit history

深刻了解提交視圖之間的區別

倉庫克隆

當克隆倉庫時能夠不要那個.git後綴。

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

更多對 Git clone 命令的介紹.

分支

將某個分支與其餘全部分支進行對比

當你查看某個倉庫的分支(Branches)頁面(緊挨着 Commits 連接)時

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

你會看到一個包含全部未合併的分支的列表。

在這裏你能夠訪問分支比較頁面或刪除某個分支。

Compare branches not merged into master in rails/rails repo - https://github.com/rails/rails/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

Rails branch compare example

{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

Another compare example

diffpatch 頁面裏也能夠比較分支:

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

瞭解更多關於基於時間的 Commit 比較.

參考文章

GitHub祕籍
github代碼搜索技巧

相關文章
相關標籤/搜索