導讀:GitHub是一個擁有數十億行程式碼的網站,每天有數百萬開發者聚集在一起,研究開源軟體中存在的問題。開發人員每天都要在工作中使用GitHub或其他基於Git的工具。GitHub是面向開源及私有軟體專案的託管平臺。那麼什麼是GitHub?其中都有哪些關鍵的概念?如何使用GitHub才能提高工作效率?
簡而言之,它是為軟體開發人員構建的平臺,是圍繞Git構建的。
00 為什麼選擇GitHub?
現在你知道了GitHub是什麼,你可能會問為什麼需要使用GitHub。
畢竟,GitHub由一傢俬人公司管理並且該公司透過託管程式碼獲利。 那麼為什麼應該使用GitHub而不是像BitBucket或GitLab這樣的平臺呢?
除個人喜好和技術原因外,還有一個重要原因:每個人都在使用GitHub,因此其網路效應不可小覷。
主要的程式碼庫已經隨著時間的推移從其他版本控制系統遷移到Git,因為它更加便捷,並且GitHub投入了大量的努力來滿足開源社群的需求。
所以今天,你在查詢一些軟體庫時,99%的情況下會在GitHub上找到它。
除了開原始碼之外,許多開發人員還在GitHub上託管私有儲存庫,因為平臺很方便。
現在讓我們瞭解一下開發人員需要知道的有關Git的概念。
01 GitHub Issues
Github Issues是世界上最受歡迎的bug跟蹤系統之一。
專案的所有者可以利用它組織,標記和將issue與里程碑關聯。
如果您在其他人管理的專案上開啟某個issue,它將保持開啟狀態,直到您將其關閉(例如,如果您找到了問題所在)或者專案管理者關閉這個issue。
有時候你會得到一個明確的答案,而其他時候,這個issue將會被開啟並標記出一些分類資訊。 然後開發人員可以回到這個issue來解決問題或根據反饋改進程式碼庫。
大多數開發人員不會免費管理在GitHub上釋出的程式碼,因此您不能期望即時回覆。 但是一些開放原始碼庫由那些圍繞該程式碼提供服務的公司釋出,它們會提供具有更多功能的版本或者使用基於外掛的系統。 這些公司已經為開源專案付給開發人員工資。
02 社會編碼
幾年前,GitHub標誌出現了“社交編碼”。
這是什麼意思,和GitHub有什麼關係呢?
03 Follow
使用GitHub,您可以透過訪問使用者的個人資料並單擊“關註”,或者透過單擊軟體庫上的“觀看”按鈕來關註開發人員或軟體庫。
在這兩種情況下,活動都會顯示在您的dashboard中。關註使用者或軟體庫跟Twitter上的關註不一樣,你看不見人們說什麼,而可以看到人們在做什麼。
04 Star
GitHub的一大特色就是能夠為軟體庫加星標。使用者可以透過這個操作將其他軟體庫加入到“已加星標的軟體庫”串列中,這樣使用者可以關註自己感興趣的專案併發現類似的專案。
這也是最重要的評級機制之一,因為軟體庫的星星越多,它通常就越受歡迎和重要。它在搜尋結果中也會位於更突出的位置。
重大專案可能有數萬顆星。
GitHub也有一個trending頁面,它會推薦在特定時間段內(例如今天或本週或本月)獲得最多星星的軟體庫。
05 Fork
專案最後一個重要的網路指標是fork的數量。
這是GitHub如何工作的關鍵,因為fork是Pull Request(PR)的基礎,這是一個更改提議。一個人可能會fork您的軟體庫,進行一些更改,然後建立一個PR來要求您合併這些更改。
有時fork軟體庫的人可能永遠不會要求你合併任何東西。他們可能會因為喜歡你的程式碼而fork你的軟體庫,併在上面新增一些他們不想合併到原始軟體庫的東西。使用者還可以修複他們遇到的bug。
06 受歡迎=更好
總而言之,這些都是專案受歡迎程度的關鍵指標。 除了上述指標之外,最近一次提交的日期和作者參與issue跟蹤系統的資訊也是衡量軟體庫或軟體可信度的標準之一。
07 PR(Pull Request)
在前一節中,我介紹了Pull Request(PR)是什麼。 重申一下,一個人可能會fork你的軟體庫,做一些改變,然後建立一個PR來要求你合併這些改變。
一個專案可能有數百個PR,通常情況下,專案越受歡迎,它的PR越多,如React專案:
一旦一個人提交了PR請求,專案的核心維護者就會對其進行審查。
根據請求範圍(更改次數,受更改影響的事件數量或涉及到的程式碼的複雜程度),維護人員可能需要不等的時間來確保更改與專案相容。
一個專案可能有有關改進的明確時間表。維護人員希望使用者用盡可能簡單的方式介紹PR中的體系結構。
這就是說,PR並不總是被立馬接受,並且可能不會被接受。
在我上面的例子中,軟體庫中有一個一年半前的PR。這在所有專案中都會發,很正常,可能是由於我上面提到的原因。
08 專案管理
除了issues(開發人員獲得使用者反饋的地方)外,GitHub介面還提供了少量專案管理功能。
其中之一是Projects。它在生態系統中是非常新的,也很少被使用,但它是幫助使用者組織需要完成的問題和工作的看板。
Wiki可以被用作檔案。另一個受歡迎的專案管理功能是里程碑。它是issue頁面的一部分,您可以將問題分配給特定的里程碑,可能是釋出標的。
說到釋出,GitHub透過引入釋出增強了Git的標簽功能。
Git標簽是特定commit的指標,如果完成時間一致,它可以幫助您回到之前版本的程式碼,並且無需取用特定的commit。
GitHub釋出版建立在Git標簽的基礎上,代表程式碼的完整版本,也可能代表程式碼最終產品完整工作版本的Zip檔案,發行說明和二進位制資產。
儘管可以透過程式設計建立Git標簽(例如,使用命令列git程式),但建立GitHub版本是手動過程,在GitHub UI上進行。使用者可以利用GitHub建立一個新版本,並選擇你想應用的標簽。
09 比較commits
GitHub提供了很多處理程式碼的工具。
您可能最希望做的事情之一是將一個分支與另一個分支進行比較。 或者您可能希望將最新的commit與您當前使用的版本進行比較,以便隨時檢視更改。
使用者可以利用GitHub比較檢視執行此操作:只需在軟體庫名稱末尾新增/compare即可。
例如,https://github.com/facebook/react/compare
在下圖中,我將最新的React v15.x與最新v16.0.0-rc版本進行了比較,方便大家瞭解更改的內容。
該檢視向您展示了兩個版本(或標簽或commits)之間的不同以及實際差異。
10 Webhooks和服務
GitHub提供了許多有助於開發人員工作流程的功能,例如webhook和服務。
1. Webhooks
當軟體庫中出現特定問題時,Webhook可以觸發外部服務,例如,推送程式碼時,建立分支或刪除標簽。
當問題發生時,GitHub會給URL傳送POST請求。
當我們從本地計算機推送更新時,此功能能ping遠端伺服器以從GitHub獲取最新程式碼。
2. 服務
GitHub服務和新的GitHub應用程式是第三方整合程式,可改善開發者的體驗或為使用者提供服務。
例如,您可以設定一個測試執行器,這樣每次TravisCI推送新commits時,它可以自動執行測試。
您可以設定Continuous Integration來使用CircleCI。您也可以建立一個Codeclimate整合程式來分析程式碼並建立“Technical Debt”報告和測試改寫率。
小結
GitHub是一個了不起的工具和服務平臺,是當今開發人員可以利用的真正神器。本教程只是入門級,但在GitHub上工作是不容錯過的。
作者:果果
來源:36氪
原文作者:Flavio Copes
原文連結:https://medium.freecodecamp.org/a-developers-introduction-to-github-1034fa55c0db
推薦閱讀
日本老爺爺堅持17年用Excel作畫,我可能用了假的Excel···
Q: 你在GitHub玩得6嗎?
歡迎留言與大家分享
覺得不錯,請把這篇文章分享給你的朋友
轉載 / 投稿請聯絡:baiyu@hzbook.com
更多精彩文章,請在公眾號後臺點選“歷史文章”檢視