Git 代碼託管有哪些選擇,從 GitHub、GitLab 公共託管到自建服務


Git 代碼託管有哪些選擇,從 GitHub、GitLab 公共託管到自建服務

Git 自 2005 年發佈以來,以其分佈式、文件快照、輕量分支等先進特性,迅速成為 CVS、SVN 等傳統集中式版本控制系統的有力競爭者,在軟件行業尤其是開源界流行開來。另一方面,Git 的創始人 Linus Torvalds 也是 Git 的金字招牌,身為 Linux 系統創始人的 Linus Torvalds 當初開發 Git,目的是用它來替代商業軟件 BitKeeper 管理 Linux 內核代碼。

2008 年創立的 GitHub,對 Git 發展起了巨大推動作用。依託 Git 建立的服務,GitHub 讓開發流程和代碼協作變得更簡單,在短短 10 年內改變了人們的編程方式,實現了令人難以想象的增長和成功。截止 2019 年底,GitHub 匯聚了全球超過 4000 萬用戶,倉庫數量早已破億。

自 GitHub 流行以來,市面誕生了各種不同的託管服務,功能各不相同、收費策略各異。有的僅針對公共(開源)倉庫免費的,有的對私人倉庫免費但有一些限制條件。記得大概 2009、10 年的樣子,當時 GitHub 對私人項目是收費的,不想付錢(qiong)但又想使用 Git 服務的我們選擇了名為 CodaSet 的託管網站,當時這個網站支持免費私人倉庫。不過這個網站 2011 年就關閉了,離創立不到兩年,大多數人應該沒有聽說過。

Git 代碼託管有哪些選擇,從 GitHub、GitLab 公共託管到自建服務

在 GitHub 流行之前,另一個著名的託管網站是 Google Code,於 2005 年推出,起初支持 HG 和 SVN,後來加入對 Git 支持。不過在 GitHub 風靡之後,搜索巨人於 2016 年徹底關閉了 Google Code ,並建議開發者將項目遷移至 GitHub。

由此看出,你應該找一個靠譜、穩定的託管平臺,甚至用自己的服務器、雲服務、PAAS 平臺等搭建私有託管平臺。不過從另一個角度看,Git 的分佈模式,相對於 SVN 等集中管理模式,遷移倉庫變得簡單許多。

公共託管

GitHub

Git 代碼託管有哪些選擇,從 GitHub、GitLab 公共託管到自建服務

GitHub 目前已成為軟件行業的開發基礎設施,如果你希望你的項目得到更多人關注,與關注者近距離交流,更好地融入開源社區,GitHub 無疑是最好的選擇。而其 Wiki、Issue、Team 功能也相當成熟好用,另外對 Travis-CI、Gitter 等第三方工具結合很好,適合進行 DevOps 實踐。

2018 年,微軟以 75 億美元價格收購 GitHub。有了財大氣粗的微軟做後盾,GitHub 大動作不斷,先是推出了免費私有倉庫,個人使用無數量限制,但每個倉庫限制最多 3 人協作開發。去年 GitHub 推出 Actions 功能,迎來內置的 CI / CD 功能,推進開發編譯測試部署流程自動化,並對所有開源項目免費。去年 GitHub 還推出了名為 Sponsors 的工具,用戶通過該功能付款為開源項目提供資金支持,類似於"打賞"功能。

對國內用戶來說,GitHub 的缺點是可能是其訪問速度慢、不穩定,甚至 2013 年還被直接封鎖。

BitBucket

Git 代碼託管有哪些選擇,從 GitHub、GitLab 公共託管到自建服務

BitBucket 是澳大利亞 Atlassian 公司推出的代碼託管平臺,Atlassian 公司以其產品項目跟蹤軟件 JIRA 和團隊協同軟件 Confluence 等企業產品聞名,客戶包括 Facebook、Adobe、Twitter 等行業巨頭。如果需要使用 Atlassian 的企業服務,BitBucket 是不錯的選擇。另外,BitBucket 對私人倉庫更友好,最多可支持 5 人協作。

GitLab

Git 代碼託管有哪些選擇,從 GitHub、GitLab 公共託管到自建服務

GitLab 是另一個著名的託管服務,起初由幾個烏克蘭程序員使用 Ruby 語言 + Rails 框架開發。2018 年,GitHub 被微軟收購,導致大批不信任微軟的開發者將項目遷移至 GitLab。同年 GitLab 宣佈完成了 1 億美元融資,資方包含谷歌母公司 Alphabet 旗下的風險投資部門 GV。GitLab 預計將會在 2020 年 11 月 IPO,這應該是公司上市前最後一輪融資。

GitLab 功能上與 GitHub 類似,優勢是支持無限多合作者私有代碼庫。同 GitHub 一樣,GitLab 在國內的訪問速度並不佳。

碼雲 Gitee

Git 代碼託管有哪些選擇,從 GitHub、GitLab 公共託管到自建服務

碼雲 Gitee 是國內託管平臺的代表,全中文界面,功能實用豐富,更懂國內開發者。碼雲在訪問速度方面優勢明顯,本地技術團隊提供免費技術支持。碼雲同樣對私有倉庫免費,但限制 5 人協作,總倉庫最大 5GB,單倉庫最大 500 MB。

自建服務

GitLab

Git 代碼託管有哪些選擇,從 GitHub、GitLab 公共託管到自建服務

GitLab 除了提供開源託管和商業託管,還提供 gitlab-ce(GitLab Community Edition)供開發者或企業搭建私有託管服務。經過多年開發,GitLab 功能齊全,集成比較強的 CI / CD 功能,是許多開發者和企業的首選。

GitLab 起初由 Ruby 語言開發,內存佔用大,性能不佳,後來部分功能使用 Go 語言重寫。GitLab 龐大的安裝包和繁瑣的安裝過程也一直為人詬病,新手或怕麻煩的用戶可以使用 Bitnami 快速部署。

GitBucket

Git 代碼託管有哪些選擇,從 GitHub、GitLab 公共託管到自建服務

GitBucket 由一位日本開發者創建,採用 Scala 語言 + Scalatra 框架開發,開發比較活躍。最新版本為 4.33.0,於 2019 年 12 月 31 日發佈,打包後 war 體積為 54.7MB。由於內置 Jetty 服務器,該 war 包可脫離 Tomcat 等容器直接運行:java -jar gitbucket.war,當然前提是要安裝好 Java 虛擬機環境。

GitBucket 3.13 之前版本界面類似 GitHub,還曾收到 Github 的郵件,要求他們更改 UI 以示與 GitHub 的區別。

可以在 https://gitbucket.herokuapp.com 體驗其 Demo,用戶名 / 密碼:root / root

Gogs / Gitea

Git 代碼託管有哪些選擇,從 GitHub、GitLab 公共託管到自建服務

Gogs (Go Git Service) 是一款極易搭建的自助 Git 服務,Gogs 的目標是打造一個最簡單、最快速和最輕鬆的方式搭建的自助 Git 服務。使用 Go 語言開發使得 Gogs 能夠通過獨立的二進制分發,並且支持 Go 語言支持的所有平臺,包括 Linux、Mac OS X、Windows 以及 ARM 平臺。

Gitea 由 Gogs 派生而來,兩者的區別是 Gogs 主要由個人維護,Gitea 由多人開源社區維護。

Gogs / Gitea 輕量、高性能、易部署,在中小團隊間廣受歡迎,其中 Gitea 也是筆者目前採用的方案。

BAT

國內三巨頭 BAT(百度、阿里、騰訊)也推出了 Git 相關服務,提供 DevOps 一站式服務。不過相對於其他 Git 代碼託管網站,代碼託管並不是其主推業務。這些功能與雲服務、虛擬主機等業務深度結合,可提高其雲服務競爭力,讓更多企業用戶為之買單。

  • 百度效率雲
  • 騰訊工蜂
  • 阿里云云效


分享到:


相關文章: