GitHub與GitLab有何不同,您該選那個?
譯文很多人問我:“我的編程項目應使用哪個分布式版本控制系統?GitHub還是GitLab?”這個問題不好回答。
首先,您真需要分布式版本控制系統(VCS)嗎?VCS又叫源代碼管理(SCM)系統,旨在讓多個開發人員、設計人員和團隊成員輕松地處理同一項目。它確保每個人可以訪問同樣的最新代碼,并跟蹤修改。
說起來容易做起來難。
這就是為什么Linus Torvalds將Git視為他的另一項偉大發明。Git免費、開源且快速。比之前的系統更勝一籌,比如Apache Subversion、并發版本系統(CVS)、Perforce和Rational ClearCase。這么多VCS服務的名稱中含有“Git”是有道理的。
當然,您可以在自己的服務器上單獨使用 Git。如果只是在內部開發程序,只需要本地Git實例。您還可以將Git用作自己的服務器上或云上的集中式VCS。如果可以自行構建VCS服務,無需訂閱。使用該模式,您可以與遍布世界各地的團隊和合作伙伴輕松地開發項目。
然而,如果您確實需要托管Git服務的額外功能,可以關注一下GitHub和GitLab。
GitHub是最古老的服務。它由Chris Wanstrath、P. J. Hyett、Tom Preston-Werner和Scott Chacon在2008年2月使用Ruby on Rails開發而成。由于先發優勢,GitHub成了許多開源代碼存儲庫的大本營。
后來出現了GitLab;烏克蘭開發人員Dmitriy Zaporozhets和Valery Sizov于2011年創建了GitLab。一開始,GitLab就被設計成了代碼存儲庫服務和一組協作工具。
相似之處
這兩者頗為相似。兩者都在Linux服務器上運行,都隨帶問題單跟蹤器,都提供廣泛的第三方集成和導入工具。
它們還都為高級開發人員提供命令行界面(CLI),為新手程序員提供基于Web的界面。拿GitLab來說,用戶界面使用GitLab自己的Pajamas設計系統(用Vue.js編寫)。GitHub的用戶界面Desktop可作為Windows或macOS程序來使用。您現在還可以將Visual Studio與GitHub一起使用。
雖然兩者都支持開源,但存儲庫本身使用混合編程模式。GitLab使用開放核心業務方法。在此模式中,GitLab社區版保持免費開源,而GitLab企業版擁有更多功能并提供支持。至于GitHub,雖然其代碼含有一些開源代碼,但它不是一個開源項目。
不過從根本上說,兩者都提供基于Web的存儲庫(附有基于Git的開源代碼管理)和遠程存儲庫的本地文件更改。如果您只想要基本的Git功能,別人負責確保Git正常運行,這兩種服務都適合你。
當然,有些人仍不喜歡GitHub,因為微軟在2018年收購了它。對一些人來說,微軟永遠是邪惡帝國,無論微軟如何表明它現在支持開源方法和軟件,或者無論微軟首席執行官Satya Nadella怎么說他喜歡Linux。話雖如此,這從來不是一個很大的因素。雖然當時一些用戶確實離開GitHub、轉投GitLab和Atlassian BitBucket,但不像一些人預期的那樣大批用戶外流。
GitHub顯然是VCS界的巨頭。據編程工具公司JetBrains聲稱,77%的開發人員常使用GitHub,而只有40%的開發人員常使用GitLab、僅25%的開發人員常使用BitBucket。
差異之處
主要區別在于,GitLab內置了持續集成/持續交付(CI/CD)和DevOps工作流程。GitHub讓您可以使用自己選擇的CI/CD工具,但需要自行集成。GitHub用戶通常使用第三方CI程序,比如Jenkins、CircleCI或TravisCI。
另一個重要區別是,GitHub注重速度,而GitLab注重可靠性。具體來說,GitHub倡導將新分支與主分支合并。這樣一來,您已經準備好了快速部署;萬一出了岔子,又可以迅速修復舊版本。
在GitLab的工作流程中,您創建主分支之外的多個穩定分支。起碼您會有生產級和預生產級穩定分支。這意味著要有多步驟測試過程。一接到合并請求只審查一次代碼是不夠的。
另一大區別是,GitLab提供了完整的軟件開發解決方案。它自稱是完整的DevOps平臺不無道理。話雖如此,GitLab確實提供與一些第三方程序和平臺的集成,比如Jira、Microsoft Teams、Slack、Gmail及其他許多應用程序和平臺。
另一方面,GitHub在其自己的程序內提供的服務較少,但提供了與許多外部程序和服務集成的方法。這包括GitHub竭力與該服務集成的軟件和通過GitHub Marketplace可享用的其他數百個程序。
價格
兩種服務都提供免費方案,隨帶無限的公共和私有存儲庫。如果您是個人程序員或有支小團隊,應該足以滿足需要。但是如果貴公司靠編程吃飯,就需要更高級的解決方案。
GitHub和GitLab的價格很難比較。建議從它們的免費方案入手,了解自己的工作流程在每個平臺上如何運行,然后考慮訂閱最適合自己的那種方案。
訂閱費應該是您最不關心的問題。我用過這兩種服務,就我的小規模編程而言,它們用起來都極好。
GitLab的Premium方案是每個用戶每月收費19美元,而功能齊全的Ultimate方案每月收費99美元。至于GitHub,Team方案是每個用戶每年40美元,而Enterprise方案是每個用戶每年200美元。不過您可能會發現無論最終訂閱哪種服務,都需要支付額外費用。
別讓價格成為指導因素。真正重要的是,哪一個會為您提供開發軟件所需的工具和服務。
原文標題:??GitHub vs GitLab: The key differences??,作者:Steven Vaughan-Nichols