歡迎光臨
每天分享高質量文章

號稱“開發者神器”的GitHub,到底該怎麼用?

開源最前線(ID:OpenSourceTop) 猿妹 編譯

連結:https://medium.freecodecamp.org/a-developers-introduction-to-github-1034fa55c0db

GitHub是一個擁有數十億行程式碼的網站,每天有數百萬開發者聚集在一起,與開源軟體進行協作和報告問題。簡而言之,它是一個基於Git構建的軟體開發人員的平臺。

作為開發人員,你幾乎每天都要在工作中使用GitHub或其他基於Git的工具。用於託管程式碼或協作其他人的程式碼。這篇文章解釋了GitHub的一些相關概念,以及如何它的一些功能使用來提高你的工作效率。

為什麼選擇GitHub?

現在你已經知道GitHub的用途了,但你可能會問為什麼我要使用GitHub呢?

畢竟,GitHub由一傢俬人公司管理,而且還會透過託管人員程式碼獲利。那麼為什麼你還選擇使用它而不是選擇像BitBucket或GitLab這樣類似的平臺呢?

除個人偏好和技術原因外,還有一個重要原因:每個人都在使用GitHub,因此網路效應非常大。

主要的程式碼庫已經隨著時間的推移從其他版本控制系統遷移到Git,因為更加便捷,並且GitHub定位十分明確,並投入了大量的努力來滿足開源社群的需求。

所以今天,你要查詢的軟體庫基本上99%可以在GitHub上找到它。因為平臺十分便捷,除了開原始碼之外,許多開發人員還會在GitHub上託管私有儲存庫。

下麵,我們開始瞭解一下開發人員需要知道的重要的Git的概念。

GitHub Issues

GitHub Issues是世界上最受歡迎的bug跟蹤器之一。專案的所有者可以利用它組織,標記和將 issue 與里程碑關聯。

如果你在他人管理的專案上開啟某個issue,它將保持開啟狀態,直到你將其關閉(如果你找出問題所在)或者專案管理者關閉它。

有時候你會得到一個明確的答案,而在其他時候,這個issue將會保持開放並標記一些分類資訊。然後開發人員可以回到這個issue來解決問題或改進你所反饋的程式碼庫。

大多數開發人員不能免費管理在 GitHub 上釋出的程式碼,一些開放原始碼庫由那些圍繞該程式碼提供服務的公司釋出,針對具有更多功能的版本或者利用基於外掛的體系結構。所以他們已經為開源專案付費給開發人員。

社交編碼

幾年前,GitHub標誌包含了“社交編碼”標語。這是什麼意思,是否存在必然聯絡?答案是肯定的。

Follow

藉助GitHub,你可以透過訪問使用者個人資料並點選“關註”,或點選repo協議上的“觀看”按鈕來關註開發人員或軟體庫。

在這兩種情況下,活動都會顯示在你的dashboard中。關註使用者或軟體庫跟Twitter的關註不同,你看不到別人說了什麼 ?但是可以看到別人在做什麼。

Star

GitHub的一大特色就是能夠為軟體庫加Star。使用者可以透過此操作把某個軟體庫列入“已加星標的軟體庫”串列中,該串列能夠幫助跟蹤你感興趣的專案併發現類似的專案。

這也是最重要的評級機制之一,因為獲得的星星越多,通常就代表該軟體庫越受歡迎/重要。因此,它在搜尋結果中的排名也會更靠前。許多重大專案都有數萬顆恆星。

GitHub也有一個trending頁面,它的特點是在特定的時間段(例如今日/本週、本月)盤點獲得最多Star的軟體庫。

進入這些Trending串列可能其他網路展示的效果不同,例如在其他網站上會出現,僅僅只是因為你在那個網站經常搜尋該軟體庫。

Fork

專案最後一個重要的網路指標是Fork的數量。

這是GitHub如何工作的關鍵,因為Fork是Pull Request(PR)的基礎,這是一個更改提議。一個人可能會fork你的軟體庫,進行一些更改,然後建立一個PR來要求您合併這些更改。

有時fork軟體庫的人可能永遠不會要求你合併任何東西。他們可能會因為他們喜歡你的程式碼而Fork你的倉庫,併在上面新增一些他們不想合併到原始軟體庫的東西。使用者還可以修複他們遇到的一些bug。

流行=更好

總而言之,這些都是專案受歡迎程度的關鍵指標。除了上述指標之外,最近一次提交的日期和作者參與issue跟蹤系統的資訊也是十分有用的,他可以體現一個軟體庫的可信賴度。

Pull Request(PR)

在前一節中,有介紹了Pull Request(PR)是什麼。重申一下,一個人可能會fork你的儲存庫,做一些改變,然後建立一個PR來要求你合併這些改變。

一個專案可能有數百個PR請求,通常情況下,專案越受歡迎,它的PR越多,如React專案:

● 一旦一個人提交了PR,需要由專案的核心維護者進行審查。

● 根據你的請求範圍(更改次數,受更改影響的事件數量或涉及程式碼的複雜程度),維護人員可能需要不等時間來確保更改與專案相容。

● 一個專案可能有一個明確的改進時間表,當你在PR請求中引入複雜的體系結構時,維護人員希望你可以盡可能簡單的方式介紹。

也就是說,PR並不總是被立馬處理,並且不能保證PR會被接受。

在我上面釋出的例子中,repo中有一個可以追溯到一年半以前的PR。這都是十分常見的,原因就是上面提到的這些。

專案管理

除了issue(開發人員獲得使用者反饋的地方)外,GitHub介面還提供了少量專案管理功能。

其中之一是Project。它在生態系統中是比較新的,很少被使用,但它是一個幫助組織完成問題和工作的看板。

該wiki可被用作使用者檔案。Go程式語言的GitHub Wiki是最令我印象深刻的。

另一個受歡迎的專案管理功能是里程碑。它是issue頁面的一部分,你可以將問題分配給特定的里程碑,其中包括釋出標的。

說到釋出,GitHub 透過引入釋出來增強了Git標簽的功能。

Git標記是特定commit的指標,如果完成時間一致,它可以幫助你回到之前版本的程式碼,而無需取用特定的commit。

GitHub釋出版建立在Git標簽的基礎上,代表程式碼的完整版本,也可能代表程式碼最終完整工作版本的Zip檔案,發行說明和二進位制資產。

雖然可以透過程式設計建立Git標簽(例如,使用命令列git程式),但GitHub版本是透過GitHub UI手動建立。你可以利用GitHub建立一個新版本,並選擇你想應用的標簽。

比較commit

GitHub提供了許多處理程式碼的工具。

你可能最想要做的事情之一是將一個分支與另一個分支進行比較。或者你可能希望將最新的commit與您當前使用的版本進行比較,以隨時檢視更改。

GitHub允許你使用比較檢視執行此操作:你只要在軟體庫名稱末尾新增/compare 即可。例如:https://github.com/facebook/react/compare

在下圖中,我將最新的React v15.x與最新v16.0.0-rc版本進行比較,以便瞭解更改內容。

這個檢視給我們展示了所提交兩個版本(或標簽或commit)已更改,以及之間的實際差異。

Webhooks和服務

GitHub提供了許多有助於開發人員工作流程的功能,例如webhook和服務。

Webhooks

當軟體庫中出現特定問題時,Webhook 可以觸發外部服務,例如,推送程式碼時,建立分支或建立或刪除標記時。

當上述情況發生時,GitHub會向URL傳送POST請求。

此功能的一個常見用法是在我們從本地計算機上推送更新時,ping遠端伺服器可以從GitHub獲取最新程式碼。

GitHub 服務和新的 GitHub 應用程式是第三方整合程式,可改善開發者的體驗或為使用者提供服務。

例如,您可以設定一個測試執行器,以便在每次使用TravisCI推送一些新commit時自動執行測試。

你可以設定 Continuous Integration 來使用 CircleCI。你可以建立一個Codeclimate整合,分析程式碼並提供“Technical Debt”報告和測試改寫率。

最後的話

GitHub是一個了不起的工具和服務,是當今開發人員工具種的神器。本教程可以幫助你入門GitHub,在GitHub開源(或閉源)專案上工作的體驗真的是不容錯過的。


●編號384,輸入編號直達本文

●輸入m獲取文章目錄

贊(0)

分享創造快樂