Mac搭建Git服務器(Git+Gitlite)

背景

????????工作需要,要把代碼由SVN改為Git管理,公司有自己的Git服務器,但是抱著學習的態(tài)度,還是決定自己搭一臺玩玩。度娘了一下,呵,還真不少,瀏覽了幾篇度娘上靠前的幾篇,挑了兩篇覺得靠譜的,就開始有點小激動的按照教程動手了。也正是因此,掉進了萬劫不復的坑。

? ????? 1天2天3天。。。一個多星期過去了,不管怎么嘗試,權限管理就是不好使。偶然間,在一個填坑的過程中,看到有人說gitosis是比較老舊的權限管理工具,已經停止維護了。看到這里,一萬個那什么從心中飄過。。(度娘出來的結果,基本上全都是git+gitosis的啊),不過還好,在給gitosis填坑的過程中,也學到了很多東西。

? ? ????二話不說,立馬換掉gitosis,通過了解學習,知道有下面三種主流的Git服務管理工具(方案):

- Gitosis - 輕量級, 開源項目,使用SSH公鑰認證,只能做到庫級的權限控制。目前項目已經停止開發(fā),不再維護。

- Gitolite - 輕量級,開源項目,使用SSH公鑰認證,能做到分支級的權限控制。

- Git + Repo + Gerrit - 超級重量級,集版本控制,庫管理和代碼審核為一身??晒芾泶笮图俺笮晚椖?。


????那么就毫無疑問的選擇Gitolite了。

搭建

一,創(chuàng)建 git 賬戶

1,在服務器上創(chuàng)建git賬戶,系統(tǒng)偏好設置->用戶與群組

添加git賬戶

這里最好選擇為管理員身份。不是必須的,僅僅為了方便。

2,打開遠程訪問

注銷,切換到git賬戶登錄,系統(tǒng)偏好設置->共享,打開遠程共享。(文件共享和遠程管理可以不打開,因為我是用的一臺Macmini,沒有顯示器鍵盤等配件,所以需要另一臺電腦操控它)


二,安裝gitolite

創(chuàng)建文件夾bin

$ cd ~

$ mkdir bin

從github克隆gitolite的源碼

$ git clone https://github.com/sitaramc/gitolite.git

安裝gitolite(home代表你的git賬戶所在的目錄,我的電腦是Users,所以這里對應的就是/Users/git/bin/,本文后面的指令里有用到home的地方也同理)

$ ./gitolite/install -to /home/git/bin/

至此gitolite的安裝完成,可以查看bin目錄里的內容。


bin目錄

三,回管理員主機(自己機器)上生成密鑰對

1,配置git用戶名和郵箱,這是因為git提交都需要這兩個信息,在命令行輸入:

git config --global user.name "Your Name"

git config --global user.email "email@example.com"

2,生成密鑰對,在命令行輸入:

ssh-keygen -t rsa -C "youremail@example.com"

然后一路回車,使用默認值即可,無需設置密碼。生成的秘鑰對在.ssh文件夾下(需顯示隱藏文件才能看到.ssh)


密鑰對存放目錄

.pub結尾的就是你的公鑰,就是要把它放到服務器上,達到免密碼登錄驗證的目的。

四,配置gitolite管理員

把剛才得到的公鑰拷貝到服務器桌面(隨便一個你能找到的位置就可以)。怎么拷貝,U盤,郵件,QQ隨你便。改一下公鑰名字,為你的郵箱名字youremail@example.com.pub。

為gitolite配置管理員,命令行輸入

$ /home/git/bin/gitolite setup -pk /home/git/Desktop/youremail@example.com.pub

配置SSH

修改sshd配置文件(/etc/ssh/sshd_config),找到以下內容,并去掉注釋符”#“(非root用戶沒有權限直接修改此文件,拷貝一份出來,改好再考進去替換掉原來的就可以了)

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile? /home/git/.ssh/authorized_keys

重啟ssh服務

service sshd restart

很奇怪的是我的機器找不到service指令,所以用以下指令手動重啟了下

1.啟動sshd服務:

sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

2.停止sshd服務:

sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist

3查看是否啟動:

sudo launchctl list | grep ssh

如果看到下面的輸出表示成功啟動了:

--------------

-?0?com.openssh.sshd

至此,整個服務器就搭建完畢了。

剩下Gitolite權限管理的相關知識和怎么操作網上就比較多,也比較靠譜了,大家自行百度吧。這里就不在詳解了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容