git、github、gitlab之間的關係

git、github、gitlab之間的關係

GIt-版本控制工具;GitHub-一個網站平臺,提供給用戶空間存儲git倉儲,保存用戶的一些數據文檔或者代碼等;GitLab - 基於Git的項目管理軟件。

Git分佈式版本控制系統

Git是一款自由和開源的分佈式版本控制系統,用於敏捷高效地處理任何或小或大的項目。

Git - 版本控制工具
Git是一個開源的分佈式版本控制系統,用以有效、高速的處理從很小到非常大的項目版本管理。
Git 是 Linus Torvalds 爲了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。
Torvalds 開始着手開發 Git 是爲了作爲一種過渡方案來替代 BitKeeper,後者之前一直是 Linux 內核開發人員在全球使用的主要源代碼工具。開放源碼社區中的有些人覺得 BitKeeper 的許可證並不適合開放源碼社區的工作,因此 Torvalds 決定着手研究許可證更爲靈活的版本控制系統。儘管最初 Git 的開發是爲了輔助 Linux 內核開發的過程,但是我們已經發現在很多其他自由軟件項目中也使用了 Git。例如 最近就遷移到 Git 上來了,很多 Freedesktop 的項目也遷移到了 Git 上。

Github - 一個網站,提供給用戶空間創建git倉儲,保存用戶的一些數據文檔或者代碼等
作爲開源代碼庫以及版本控制系統,Github目前擁有140多萬開發者用戶。隨着越來越多的應用程序轉移到了雲上,Github已經成爲了管理軟件開發以及發現已有代碼的首選方法。
如前所述,作爲一個分佈式的版本控制系統,在Git中並不存在主庫這樣的概念,每一份複製出的庫都可以獨立使用,任何兩個庫之間的不一致之處都可以進行合併。
GitHub可以託管各種git庫,並提供一個web界面,但與其它像 SourceForge或Google Code這樣的服務不同,GitHub的獨特賣點在於從另外一個項目進行分支的簡易性。爲一個項目貢獻代碼非常簡單:首先點擊項目站點的“fork”的按鈕,然後將代碼檢出並將修改加入到剛纔分出的代碼庫中,最後通過內建的“pull request”機制向項目負責人申請代碼合併。已經有人將GitHub稱爲代碼玩家的MySpace。

GitLab - 基於Git的項目管理軟件
GitLab 是一個用於倉庫管理系統的開源項目。使用Git作爲代碼管理工具,並在此基礎上搭建起來的web服務。

三者都是基於git的,可以說是git的衍生品。

 Github和GitLab的異同點

1 相同點:二者都是基於web的Git倉庫,在很大程度上GitLab是仿照GitHub來做的,它們都提供了分享開源項目的平臺,爲開發團隊提供了存儲、分享、發佈和合作開發項目的中心化雲存儲的場所。

2 不同點:GitHub作爲開源代碼庫及版本控制系統,擁有超過900萬的開發者用戶,目前仍然是最火的開源項目託管系統。GitHub同時提供公共倉庫和私有倉庫,但如果要使用私有倉庫,是需要付費的。

而GitLab解決了這個問題,你可以在上面創建私人的免費倉庫。

GitLab讓開發團隊對他們的代碼倉庫擁有更多的控制,相比於GitHub,它有不少的特色:

允許免費設置倉庫權限;允許用戶選擇分享一個project的部分代碼;允許用戶設置project的獲取權限,進一步的提升安全性;可以設置獲取到團隊整體的改進進度;通過innersourcing讓不在權限範圍內的人訪問不到該資源。

從代碼私有性方面來看,有時公司並不希望員工獲取到全部的代碼,這個時候GitLab無疑是更好的選擇。但對於開源項目而言,GitHub依然是代碼託管的首選。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章