自打畢業之後,可以說每天開啟 Github 或Email 看有沒有 watch 專案的訊息或者自己專案的 issue,然後在Explore 看看社群內專案的走勢,緊接著開始寫程式碼搬磚的工作,偶爾也會關注下 Github 的 Blog, 看看有沒有大新聞,亦或掃一眼 Github 的 Tip,閒的蛋疼的時候也會一時興起去搜尋下有意思的專案,看到有趣的人就會去他的部落格看看,晚上要睡覺之前會考慮是不是要寫篇部落格,然後 push上去顯得自己的 Github 綠一點......久而久之,也學到了一些 Github 的使用技巧,下邊毫無保留的分享給大家。
兩分鐘把Github專案變成前端網站
此處預設你有 Github 賬號、安裝了 Git 並且熟悉基本的 Git 操作,只是需要尋求部署 Github Pages 方面的知識。GitHub Pages 大家可能都知道,常用的做法,是建立一個 gh-pages 的分支,通過 Setting 裡的設定的GitHub Pages 模組可以自動建立該專案的網站。
這裡經常遇到的痛點是,master 遇到變更,經常需要去 sync 到 gh-pages,特別是純 web 前端專案,這樣的痛點是非常地痛。
Github官方可能嗅覺到了該痛點,出了個 master 當作網站是選項,太有用了。
下邊具體來看下操作步驟:
第一步 進入 Settings 設定 Github Page 模組
![和逛微博、刷朋友圈一樣玩轉 GitHub](https://i.iter01.com/images/9bf99a0d583bfcf8dcaba487567b39195788542b0c90d3f5ea7ffcdd981e49fc.png)
第二步 選擇對應分支
選擇完 master branch 之後,master 自動變成了網站。master 所有的提交會自動更新到網站。
![和逛微博、刷朋友圈一樣玩轉 GitHub](https://i.iter01.com/images/b8bcb47e730952d00392e1a152148a885dae711787e7594d810c2dfac2f3ce47.png)
第三步 選擇對應主題
![和逛微博、刷朋友圈一樣玩轉 GitHub](https://i.iter01.com/images/0e704a53d409e83c0e620c80a55fff1f17f99595fe983709639ddf5dea3ac043.png)
![和逛微博、刷朋友圈一樣玩轉 GitHub](https://i.iter01.com/images/8e7d0d56c1098313e22e8d7ace5e6a71badc2e093d865f4e81f85d2147a71d94.png)
第四步 等待部署成功
![和逛微博、刷朋友圈一樣玩轉 GitHub](https://i.iter01.com/images/75e59980aa0723e4b59a6591c1ef789a2ac3130708bf32cc8410325a8cd54c92.png)
如上圖所示,則代表部署成功!此時便可以使用 username.github.io/倉庫名稱 進行訪問了,我在此處的訪問地址是:bylant.github.io/DWR-Spring/
![和逛微博、刷朋友圈一樣玩轉 GitHub](https://i.iter01.com/images/a887e6d74389a4fa02c99618f7ba4ef6735333ca6551ff7c82768ba59f076695.png)
精準分享關鍵程式碼
比如你有一個檔案裡的某一行程式碼寫得非常酷炫或者關鍵,想分享一下。可以在 URL 後面加上 #L 行號
比如,點選下面這個 URL
https://github.com/Bylant/DWR-Spring/blob/master/src/main/java/top/zhoudl/dwr/MessagePusher.java#L47
複製程式碼
此時便會直接跳轉到這行程式碼的位置,高亮顯示
![和逛微博、刷朋友圈一樣玩轉 GitHub](https://i.iter01.com/images/a0b8b646766e43f684bea418e87ede08221cd1f679b586716ab832546976208b.png)
有的朋友此處可能會想,分享一行程式碼有什麼用,我的關鍵程式碼那可是以段來論的,看不起你這一行,不急,同樣有辦法,我們在 URL 後邊加上 L開始行號-L結束行號
如以下 URL :
https://github.com/Bylant/DWR-Spring/blob/master/src/main/java/top/zhoudl/dwr/MessagePusher.java#L47-L70
複製程式碼
![和逛微博、刷朋友圈一樣玩轉 GitHub](https://i.iter01.com/images/2b21327790ada7c99a61ef548107551230b4943f6bf9e244a139e7c78facf4c7.png)
其實我們也不用去死記硬背這些東西,因為 Github 有方式幫我們自動生成這些連結
分享單行程式碼
直接點選程式碼區的行號,URL 會隨之跳轉,大家可以觀察下圖的 URL 變化
image分享多行程式碼
多行程式碼和單行程式碼分享的操作步驟基本一致,只不過區別在於在選擇完程式碼塊開始行之後,點選結束行的同時需要按住 Shift 鍵,大家觀察以下動圖 URL 的變化
image
此時我們可以直接複製拿到的 URL 去別的地方分享了。
通過提交的 message 自動關閉 issues
比如有人提交了個issues github.com/AlloyTeam/A…
然後你去主幹上改程式碼,改完之後提交填msg的時候,填入:
fix https://github.com/Bylant/DWR-Spring/issues/1
複製程式碼
這個 issues 會自動被關閉。當然不僅僅是 fix 這個關鍵字,下面這些關鍵字也可以:
close
closes
closed
fixes
fixed
resolve
resolves
resolved
gitattributes設定專案語言
![和逛微博、刷朋友圈一樣玩轉 GitHub](https://i.iter01.com/images/a475d5f3119ee3632910e7c2e0aed6893c26b3f3da8d4e4743448eb9b737f343.png)
如上圖所示,Github 會根據相關檔案程式碼的數量來自動識別你這個專案是 HTML專案、avascript 專案或者 Java 專案。但是這就會帶來了一個問題,比如 DWR-Spring 最開始被識別成 JavaScript 專案。因為 專案剛開始可能前端程式碼很多。
怎麼辦呢?gitattributes 可以來幫助你搞定這個問題。我們在專案的根目錄下新增如下 .gitattributes 檔案便可
檔案內容如下:
*.js linguist-language=Java
複製程式碼
主要意思是把所有 js 檔案字尾的程式碼識別成 Java 檔案。
檢視自己專案的訪問資料
在自己的專案下,點選 Graphs,然後再點選 Traffic 如下所示:
![和逛微博、刷朋友圈一樣玩轉 GitHub](https://i.iter01.com/images/2d3eebb99efca592380f6cf53b35167c3475a07669069677bfbfe8e58c837a70.png)
更多統計留給你自己去探索哦
trending 排行榜
經常玩微博的人都知道,每天都有個熱搜榜,知乎也有個知乎熱榜,當然,Github 也有某型別語言的每日排行榜。比如 Java 每日排行榜:
https://github.com/trending/javascript?since=daily
複製程式碼
![和逛微博、刷朋友圈一樣玩轉 GitHub](https://i.iter01.com/images/0daea171e7fc26d2bd178077816b6db6bd86155e03a35334a6497a93cb908c5b.png)
Github 推薦
https://github.com/explore
複製程式碼
![和逛微博、刷朋友圈一樣玩轉 GitHub](https://i.iter01.com/images/18931c00c413f34b0ef0baf2ad40e7d64d0f0ae65368a14b2e458ebeedc4627e.png)
快速搜尋專案檔案功能
有時候我們要快速檢索專案中的某個檔案,這個時候如果一個一個去找很浪費時間。所以 Github 也為我們提供了一個搜尋技巧。
- 開啟 Github 底下任意倉庫,然後開啟倉庫裡面的程式碼
- 接著在專案頁面,按住鍵盤 T 鍵,會在專案名旁邊出現可以可以搜尋的地方
- 輸入想要查詢的關鍵詞,頁面會根據輸入的關鍵詞進行快速搜尋
其他搜尋技巧
基本規則
預設搜尋是從master分支搜尋程式碼,搜尋語句不能有特殊字元如. , : ; / \ ` ’ ” = * ! ? # $ & + ^ | ~ < > ( ) { } [ ].
指定搜尋方式
![和逛微博、刷朋友圈一樣玩轉 GitHub](https://i.iter01.com/images/f8bd81de1fedc48b255aded474aa5521663e6a7ec0874780d7e3d104fd44483c.png)
Awesome + 關鍵字
Awesome 似乎已經成為不少 GitHub 專案喜愛的命名之一,他可以找到優秀的工具列表。比如前面提及要找到優秀的 Windows 軟體,可以嘗試搜尋 Awesome windows
,得到這樣的搜尋結果:
![和逛微博、刷朋友圈一樣玩轉 GitHub](https://i.iter01.com/images/36828ed07846aa784915a007d14e13d049540776dbb2404f506f92806aa51115.png)
排名前列的結果出現了 Windows/Awesome 專案,這裡集合了 Windows 上優質和精選的最佳應用程式及工具列表。
此處小提幾點:我習慣的用法是靈活運用下面幾個搜尋條件:stars:
、language:
、forks:
,其實就是設定專案收藏、開發語言、派生的搜尋條件,比如輸入 stars:>=1000 language:java
,得到的結果就是收藏大於和等於 500 的 Java 專案。如下結果出來的都是 ES、SpringBoot 等經典專案
![和逛微博、刷朋友圈一樣玩轉 GitHub](https://i.iter01.com/images/d4157c4729468f5bdde1bf9e94a74413b66b76af4570253c6839ee1b22c581da.png)
除了以上所述之外,GitHub 提供高階搜尋功能訪問地址如下:
https://github.com/search/advanced
複製程式碼
![和逛微博、刷朋友圈一樣玩轉 GitHub](https://i.iter01.com/images/94049d6544ab667638002d16350f13619694e112435dae9933e35fb2e850887e.png)
具體使用方法參見 help.github.com/en/articles… 此處不再贅述了。
其他技巧
issue 中輸入冒號 : 新增表情
![和逛微博、刷朋友圈一樣玩轉 GitHub](https://i.iter01.com/images/178505c41b7e871eb0edc6ca5bc5d660ab082f490eb4539188a29bd409215831.png)
表情對應的程式碼參見網站
https://www.webfx.com/tools/emoji-cheat-sheet/
複製程式碼
![和逛微博、刷朋友圈一樣玩轉 GitHub](https://i.iter01.com/images/f5f59e2976e8208dc078de3b95167b7b712d2984f33d9212fb5af89e77196169.png)
可以看到我們經常用的所有表情都會在這個地方。
任意介面,shift + ?顯示快捷鍵
![和逛微博、刷朋友圈一樣玩轉 GitHub](https://i.iter01.com/images/80c1ee5a4944badd7972389ebaa050b6efab55ad4359172a6f3ec297fe6ad4ad.png)
issue 中選中文字,R 鍵快速引用
還是以上邊新建的 issue 為例,我們看到選中 文件太少 四個字之後,然後按住 R 鍵,就會自動引用 文件太少 這四個字
![和逛微博、刷朋友圈一樣玩轉 GitHub](https://i.iter01.com/images/d47e687de5a90ea41145c89238350b04e1c2e0e999faa293884a41b3f8bde510.webp)
最後
好了,我就會這麼多,也是我經常使用的技巧。可以說 Github 的資源對於廣大開發者來說真是個寶藏,很多時候我都在思考一個問題,我們每天遇到各種各樣的問題,然後我們需要不斷 Google、百度,達到我們解決問題的目的。但是在這個過程中,我們總是能夠見到,對於同一個問題,總是有大量錯誤、copy 的部落格、文庫乃至"吊炸天"的百度知道,一次又一次減慢了我們解決問題的進度。更加糟糕的是,這種 copy 是保量不保質的,所以我們總是希望,每當我們 Google 或者百度的時候,都能夠最快解決我們需要解決的問題。然而,這貌似是不切實際的,在人人都有權利發表文章的今天,要想禁止這種無意義的抄襲幾乎是痴人說夢。清晰意識到這一點之後,我覺得更加有效的方式是每一個發表部落格或者活躍於問答網站的人都應該把自己的部落格或者解答做到精煉和準確,在某種意義上來說,這是一種義務和責任。
![和逛微博、刷朋友圈一樣玩轉 GitHub](https://i.iter01.com/images/37c46e79d4717ca2ce83853f98c84cbfef1a16d7341da5bb4ef4475defbbc06e.png)
也歡迎補充實用的技巧~~我會持續更新上去…