GitHub開發人員簡介

GitHub是一個網站,每天都有數百萬的開發人員聚集在一起,以在開源軟件上進行協作。它也是託管數十億行代碼的地方,也是軟件用戶去報告他們可能遇到的問題的地方。學習開發人員應該了解的所有GitHub最重要的部分

GitHub簡介

GitHub是一個網站,每天都有數百萬的開發人員聚集在一起,以在開源軟件上進行協作。它也是託管數十億行代碼的地方,也是軟件用戶去報告他們可能遇到的問題的地方。

簡而言之,它是面向軟件開發人員的平台,它是圍繞Git構建的。

提示:如果您還不了解Git,請查看Git指南

作為開發者您無法避免每天使用GitHub,以託管您的代碼或使用他人的代碼。這篇文章向您介紹了GitHub的一些關鍵概念,以及如何使用其某些功能來改善工作流程,以及如何將其他應用程序集成到您的流程中。

為什麼選擇GitHub?

現在您知道了GitHub,您可能會問為什麼您應該使用它。

畢竟,GitHub是由一家私人公司管理的,該公司從託管人的代碼中獲利。那麼,為什麼不使用類似的平台(例如BitBucket或GitLab)呢?

除了個人喜好和技術原因外,還有一個重要原因:每個人都使用GitHub,因此網絡影響巨大。

一段時間以來,主要的代碼庫由於其便利性而從其他版本控制系統遷移到了Git,並且GitHub在歷史上已經很好地定位於Open Source社區(並付出了很多努力來“贏得”)。

因此,今天無論何時您查找某個庫,您都將有99%的時間在GitHub上找到它。

除了開放源代碼,由於獨特平台的便利性,許多開發人員還在GitHub上託管私有存儲庫。

GitHub問題

GitHub問題是世界上最受歡迎的錯誤跟踪器之一。

它為存儲庫的所有者提供了組織,標記和分配里程碑事件的能力。

如果您在其他人管理的項目中打開問題,則該問題將一直保持打開狀態,直到您關閉它(例如,如果您發現存在的問題)或回購所有者將其關閉。

有時,您會得到一個明確的答案,有時,問題將被懸而未決,並帶有對問題進行分類的一些信息,開發人員可以根據問題的反饋來解決該問題或改進代碼庫。

大多數開發人員沒有獲得支持其在GitHub上發布的代碼的報酬,因此您不會期望得到迅速的答复,但是其他時候,開放源代碼存儲庫是由那些圍繞該代碼提供服務或針對具有更多功能的版本提供商業產品的公司發布的,或基於插件的體系結構,在這種情況下,他們可能會以付費開發人員的身份在開源軟件上工作。

社會編碼

幾年前,GitHub徽標包含“社交編碼”標語。

這是什麼意思,仍然有意義嗎?必然是。

跟隨

使用GitHub您可以關注開發人員,只需進入他們的個人資料並點擊“關注”即可。

您還可以關注存儲庫,通過點擊“手錶倉庫上的“”按鈕。

在這兩種情況下,活動都會顯示在您的儀表板中。您不會像在Twitter上那樣追隨別人,而是看到別人在說什麼,但是你看到人們在做什麼

星星

GitHub的一大壯舉是能夠為資料庫加註星標。此操作會將其包含在“已加星標的存儲庫”列表中,使您可以找到以前發現的有趣內容,並且它也是最重要的評級機制之一,因為回購協議中的星標越多,它就越重要,並且它將更多地顯示在搜索結果中。

大型項目可以擁有70.000個或更多的星星。

GitHub也有一個趨勢頁面它的特點是在確定的時間段內(例如今天,本週或本月)獲得最多星星的存儲庫。

進入這些趨勢列表可能會導致其他網絡效應,例如在其他站點上被展示,只是因為您具有更高的可見性。

項目的最後一個重要網絡指標是分叉數。

這是GitHub工作方式的關鍵,因為派生是變更請求(Pull Request)的基礎。從您的存儲庫開始,有人分叉它,進行一些更改,然後創建PR來要求您合併這些更改。

有時,分叉的人從不要求您合併任何東西,僅僅是因為他們喜歡您的代碼並決定在其頂部添加一些內容,或者他們修復了所遇到的錯誤。

叉子會克隆GitHub項目的文件,但不會克隆原始項目的任何星號或問題。

總而言之,這些都是項目受歡迎程度的關鍵指標,通常與最近一次提交的日期以及作者在問題跟踪器中的參與一起,對於您是否應依賴項目而言,是一個有用的指示。庫或軟件。

拉取要求

在介紹什麼是拉取請求(PR)之前

從您的存儲庫開始,有人分叉它,進行一些更改,然後創建PR來要求您合併這些更改。

一個項目可能有數百個PR,通常來說,項目越受歡迎,PR越多,例如React項目:

React Pull Requests

一旦一個人使用GitHub界面提交了PR,這是一個簡單的過程,則需要項目的核心維護者對其進行審查。

取決於範圍對於您的PR(更改的數量,或受更改影響的事物的數量,或所觸摸的代碼的複雜性),維護者可能需要更多或更少的時間來確保您的更改與項目兼容。

一個項目可能有一個明確的時間表,他們想要引入更改。當您在PR中引入複雜的體系結構時,維護人員可能希望使事情簡單。

就是說不一定總是很快就接受公關,並且不能保證PR甚至會被接受

在我上面發布的示例中,回購中有一個PR可以追溯到1.5年。而這發生在全部項目。

項目管理

除了問題(開發人員從用戶那裡獲得反饋的地方)之外,GitHub界面還提供了旨在幫助項目管理的其他功能。

其中之一是專案。它在生態系統中非常新,很少使用,但這是一個看板幫助組織問題和需要完成的工作。

維基旨在用作用戶文檔。我到目前為止所看到的Wiki最令人印象深刻的用法之一是轉到編程語言GitHub Wiki

另一個流行的項目管理幫助是里程碑。在問題頁面的一部分中,您可以將問題分配給特定的里程碑,這些里程碑可以作為發布目標。

說到發布,GitHub增強了Git標籤通過引入功能發布

Git標記是指向特定提交的指針,如果一致執行,則可以幫助您回滾到以前的代碼版本,而無需引用特定的提交。

GitHub版本基於Git標籤構建,表示代碼的完整版本,以及zip文件,發行說明和二進制資產,它們可能表示代碼最終產品的完整版本。

雖然可以通過編程方式創建Git標籤(例如,使用命令行)git程序),創建GitHub版本是通過GitHub UI進行的手動過程。您基本上是告訴GitHub創建一個新版本,並告訴他們要將該版本應用到哪個標籤。

比較提交

GitHub提供了許多工具來處理您的代碼。

您可能想做的最重要的事情之一就是將一個分支與另一個分支進行比較。或者,將最新提交與當前使用的版本進行比較,以了解隨著時間的推移進行了哪些更改。

GitHub允許您使用比較視圖,只需添加/compare回購名稱,例如:https://github.com/facebook/react/compare

Compare View

例如,在這裡我選擇比較最新的反應v15.x到最新v16.0.0-rc在撰寫本文時可用的版本,以檢查更改內容:

Compare React Versions

該視圖向您顯示所做的承諾在兩個版本(或標記或提交引用)之間實際差異如果更改數量低於合理數量

Webhooks和服務

GitHub提供了許多有助於開發人員工作流程的功能。其中之一是webhooks,另一個是服務。

網絡掛鉤

當存儲庫中發生某些事件時,例如當推送代碼,創建派生,創建或刪除標籤時,Webhooks允許對外部服務執行ping操作。

當事件發生時,GitHub將POST請求發送到我們告訴它使用的URL。

此功能的常見用法是,當我們從本地計算機推送更新時,對遠程服務器執行ping操作以從GitHub獲取最新代碼。

我們推送到GitHub,GitHub告訴我們推送的服務器,該服務器從GitHub提取。

服務

GitHub服務和新的GitHub應用程序是第三方集成,可改善開發人員體驗或為您提供服務。

例如,您可以設置一個測試運行器,以在每次推送一些新的提交時自動運行測試,使用TravisCI

您可以使用以下方式設置持續集成CircleCI

您可以創建一個代碼氣候集成,用於分析代碼並提供技術債務和測試覆蓋率的報告。

最後的話

GitHub是一個了不起的工具和服務,可以利用,它是當今開發人員工具集中的真正瑰寶。本教程將幫助您入門,但是不容錯過在GitHub(開放源代碼(或封閉源代碼)項目)上工作的真實經驗。


更多git教程: