推薦5個(gè)優(yōu)秀的Github開(kāi)源替代品
Git是一種流行的版本控制系統(tǒng),在編程代碼等領(lǐng)域都十分受歡迎,它可以在本地運(yùn)行,也可以在服務(wù)器上運(yùn)行從而進(jìn)行協(xié)作,還可以作為托管服務(wù),目前,有很多托管平臺(tái)都十分受歡迎。
GitHub不是開(kāi)源的。實(shí)際上,這對(duì)大多數(shù)用戶來(lái)說(shuō)沒(méi)有太大區(qū)別。放在GitHub上的絕大多數(shù)代碼都是鼓勵(lì)大家共享的,所以GitHub的主要功能是一種公共備份服務(wù)。如果GitHub取消或徹底改變其服務(wù)條款,恢復(fù)數(shù)據(jù)將相對(duì)簡(jiǎn)單,因?yàn)槟憧梢栽贕itHub上保存一個(gè)本地代碼副本。然而,一些組織已經(jīng)開(kāi)始依賴于GitHub提供的非Git服務(wù),這使得從GitHub遷移變得很困難。這是一個(gè)尷尬的地方,所以對(duì)于許多人來(lái)說(shuō),尋找一個(gè)Github替代品是一個(gè)不錯(cuò)的選擇。
今天就和大家推薦5款開(kāi)源的Github替代品:
1. GitLab
GitLab不僅僅是GitHub的一個(gè)替代品,它更像是一個(gè)完整的DevOps平臺(tái)。GitLab幾乎是軟件開(kāi)發(fā)機(jī)構(gòu)必備的基礎(chǔ)設(shè)施,因?yàn)樗峁┝舜a和項(xiàng)目管理工具問(wèn)題報(bào)告、持續(xù)交付和監(jiān)控。你可以在GitLab.com上使用GitLab,也可以下載到本地使用,
GitLab致力于開(kāi)源,無(wú)論是在其代碼和背后的組織,還是在Git本身。該組織發(fā)布了大量的業(yè)務(wù)文檔,作為一個(gè)網(wǎng)站,GitLab非常熱衷于推廣Git。當(dāng)你使用站點(diǎn)的特性如合并請(qǐng)求時(shí),如果在終端使用,GitLab的接口將處理在純Git中解決請(qǐng)求。
2. Gitolite
Gitolite是一個(gè)輕量級(jí)的Git代碼托管系統(tǒng),與GitLab不同的是,它沒(méi)有Web界面,沒(méi)有桌面客戶端,從用戶的角度它沒(méi)有向Git添加任何東西。事實(shí)上,用戶并不直接使用Gitolite。他們還是像往常一樣使用Git,不管是在終端中使用Git,還是在像Git Cola這樣的前端客戶端中使用Git。
不過(guò),從服務(wù)器管理員的角度來(lái)看,Gitolite解決了運(yùn)行普通Git服務(wù)器時(shí)必須手動(dòng)管理的那些權(quán)限問(wèn)題,使用Gitolite只在服務(wù)器上創(chuàng)建一個(gè)用戶(例如,一個(gè)名為git的用戶)接著使用這個(gè)身份登錄訪問(wèn)Git服務(wù)器,Gitolite可以驗(yàn)證用戶的訪問(wèn)權(quán)限、管理他們的SSH密鑰、在訪問(wèn)特定存儲(chǔ)庫(kù)時(shí)驗(yàn)證他們的特權(quán)級(jí)別等等。管理員無(wú)需再創(chuàng)建無(wú)數(shù)的Unix用戶帳戶,而只需將用戶(通過(guò)他們的SSH公鑰標(biāo)識(shí))列到可訪問(wèn)的存儲(chǔ)庫(kù)列表里。
Gitolite的本質(zhì)是幾個(gè)prel腳本加一些純文本配置文件,用戶甚至感受不到他的存在,只要你不是想要一個(gè)網(wǎng)頁(yè)界面,Gitolite就是一個(gè)雙贏的選擇。
3. Gitea and Gogs
Gogs 是一款獲得MIT許可的Git服務(wù)器框架和Web用戶界面,2016年,一些Gogs用戶覺(jué)得開(kāi)發(fā)受到了阻礙,因?yàn)橹挥凶畛醯拈_(kāi)發(fā)人員有訪問(wèn)開(kāi)發(fā)庫(kù)的權(quán)限,所以他們把代碼交給了Gitea。如今,這兩個(gè)項(xiàng)目彼此獨(dú)立共存,從用戶的角度來(lái)看,它們的體驗(yàn)基本上是相同的。不過(guò)這兩個(gè)項(xiàng)目都托管在Github上
使用Gitea和Gogs,你可以下載源代碼并在服務(wù)器上運(yùn)行,它為用戶提供了一個(gè)網(wǎng)站,用戶可以在其中創(chuàng)建帳戶、登錄、創(chuàng)建自己的存儲(chǔ)庫(kù)、上傳代碼、瀏覽代碼、文件問(wèn)題和bug報(bào)告、請(qǐng)求代碼合并、管理SSH密鑰等等,它的界面在外觀和感覺(jué)上與GitLab、GitHub或Bitbucket類(lèi)似,所以如果用戶有過(guò)任何在線代碼管理系統(tǒng)的經(jīng)驗(yàn),他們基本上已經(jīng)熟悉Gitea和Gogs。
Gitea或Gogs可以作為一個(gè)包安裝在任何Linux服務(wù)器上,包括作為容器安裝在BSD、macOS或Windows上,或者從源代碼編譯,它們都是跨平臺(tái)的,所以它們可以在運(yùn)行Go的任何東西上運(yùn)行。
4. Git
雖然沒(méi)有用戶管理和權(quán)限設(shè)置,但Git集成了SSH,并附帶了一個(gè)特殊的Git -shell應(yīng)用程序,該應(yīng)用程序是專門(mén)設(shè)計(jì)來(lái)作為使用Git命令的環(huán)境。將用戶的默認(rèn)shell設(shè)置為git-shell,可以限制用戶在與服務(wù)器交互時(shí)可用的操作。
Git本身沒(méi)有提供存儲(chǔ)庫(kù)權(quán)限工具來(lái)幫助你管理每個(gè)用戶的訪問(wèn)權(quán)限,因此你不得不借助于操作系統(tǒng)的用戶和訪問(wèn)控制列表(ACL)控件,如果你只有少數(shù)幾個(gè)用戶,那個(gè)操作會(huì)變得有點(diǎn)乏味,對(duì)于小型項(xiàng)目或剛剛啟動(dòng)的項(xiàng)目,在Linux服務(wù)器上運(yùn)行Git是解決協(xié)作空間需求最簡(jiǎn)單而直接的解決方案。
5. Bonus: Fossil
Fossil絕對(duì)不是Git,從某種意義上說(shuō),這正是它作為GitHub替代品的吸引力所在。事實(shí)上,F(xiàn)ossil是整個(gè)Git系統(tǒng)的替代品。它是一個(gè)完整的版本控制系統(tǒng),就像Git一樣,它還在你創(chuàng)建的每個(gè)存儲(chǔ)庫(kù)中內(nèi)置了bug跟蹤、wiki、論壇和文檔特性。它還包括一個(gè)Web界面,這聽(tīng)起來(lái)可能有點(diǎn)難以置信,感興趣的可以嘗試看看,只需從Fossil的網(wǎng)站下載并將其存儲(chǔ)在系統(tǒng)PATH中的任何位置即可。