一個厲害的程序員,是這麼逛GitHub的
來源丨https://juejin.im/post/58509f8161ff4b00683a360c
一秒鐘把Github項目變成前端網站
GitHub Pages大家可能都知道,常用的做法,是建立一個gh-pages的分支,通過setting裏的設置的GitHub Pages模塊可以自動創建該項目的網站。
這裏經常遇到的痛點是,master遇到變更,經常需要去sync到gh-pages,特別是純web前端項目,這樣的痛點是非常地痛。
Github官方可能嗅覺到了該痛點,出了個master當作網站是選項,太有用了。
選擇完master branch之後,master自動變成了網站。master所有的提交會自動更新到網站。
精準分享關鍵代碼
比如你有一個文件裏的某一行代碼寫得非常酷炫或者關鍵,想分享一下。
可以在url後面加上
#L行號
比如,點擊下面這個url:
https://github.com/AlloyTeam/AlloyTouch/blob/master/alloy_touch.js#L240你便會跳到alloy_touch.js的第240行。
那麼問題來了?如果我是一段代碼,即多行代碼想分享呢?也很簡單:url後面加上
#L開始行號-L結束行號
比如,AlloyTouch的運動緩動和逆向緩動函數如下面代碼段所示:
https://github.com/AlloyTeam/AlloyTouch/blob/master/alloy_touch.js#L39-L45
其實也不用記憶你直接在網址後面操作,github自動會幫你生成url。比如你點擊39行,url變成了
https://github.com/AlloyTeam/AlloyTouch/blob/master/alloy_touch.js#L39再按住shift點擊45行,url變成了
https://github.com/AlloyTeam/AlloyTouch/blob/master/alloy_touch.js#L39-L45然後你這個url就可以複製分享出去了,點擊這個url的人自動會跳到39行,並且39-45行高亮。
通過提交的msg自動關閉issues
比如有人提交了個
https://github.com/AlloyTeam/AlloyTouch/issues/6然後你去主幹上改代碼,改完之後提交填msg的時候,填入:
fix https://github.com/AlloyTeam/AlloyTouch/issues/6
這個issues會自動被關閉。當然不僅僅是fix這個關鍵字。下面這些關鍵字也可以:
close
closes
closed
fixes
fixed
resolve
resolves
resolved
通過HTML方式嵌入Github
如下面所示,user和repo改成你想要展示的便可以
"//ghbtns.com/github-btn.html?user=alloyteam&repo;=alloytouch&type;=watch&count;=true" allowtransparency="true" frameborder="0" scrolling="0" width="110" height="20">
插入之後你便可以看到這樣的展示:
gitattributes設置項目語言
如上圖所示,github會根據相關文件代碼的數量來自動識別你這個項目是HTML項目還是Javascript項目。
這就帶來了一個問題,比如AlloyTouch最開始被識別成HTML項目。
因為HTML例子比JS文件多。怎麼辦呢?gitattributes來幫助你搞定。在項目的根目錄下添加如下.gitattributes文件便可,
https://github.com/AlloyTeam/AlloyTouch/blob/master/.gitattributes裏面的:
*.html linguist-language=JavaScript
主要意思是把所有html文件後綴的代碼識別成js文件。
查看自己項目的訪問數據
在自己的項目下,點擊Graphs,然後再點擊Traffic如下所示:
裏面有Referring sites和Popular content的詳細數據和排名。如:Referring sites
其中Referring sites代表大家都是從什麼網站來到你的項目的,Popular content代表大家經常看你項目的哪些文件。
trending排行榜
上面教大家設置語言了,下面可以看看怎麼查看某類型語言的每日排行榜。比如js每日排行榜:
https://github.com/trending/javascript?since=daily https://github.com/trending/html?since=daily https://github.com/trending/css?since=daily