一、基本環(huán)境
配置Git Server之前,必須安裝Git 以及 Python環(huán)境。macOS本身自帶有二者環(huán)境。如下命令判斷:
git --version
python --version

Git Python 環(huán)境
二、下載并安裝gitosis
使用如下命令來下載gitosis:
git clone https://github.com/tv42/gitosis.git

下載gitosis
進(jìn)入gitosis目錄,使用如下命令執(zhí)行python腳本來安裝gitosis:
sudo python setup.py install
安裝gitosis
三、在客戶端創(chuàng)建公鑰
ssh-keygen -t rsa

步驟三:生成客戶端公鑰密鑰.png
四、使用ssh公鑰初始化gitosis
1、將步驟三中生成的公鑰拷貝到Git Server上,然后執(zhí)行如下命令,將公鑰拷貝到 /tmp目錄下。
macOSServer:gitosis GitServer$ cp id_rsa.pub /tmp/id_rsa.pub
2、進(jìn)入gitosis目錄,進(jìn)行如下命令初始化gitosis,初始化完成后,會在GitServer(Mac賬戶名)的home下創(chuàng)建repositories目錄。
macOSServer:gitosis GitServer$ sudo -H -u git gitosis-init < /tmp/id_rsa.pub
在這里,會將該客戶端當(dāng)做認(rèn)證受信任的賬戶,因此在GitServer的主目錄.ssh下會有記錄,文件authorized_keys的內(nèi)容與id_rsa.pub基本一致。
注意: 使用如下命令,打開authorized_keys文件,刪除“command =”gitosis-serve yourname“,no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty”內(nèi)容,保存即可。
macOSServer:~ GitServer$ open authorized_keys
3、改變倉庫gitosis-admin.git權(quán)限,方便后期管理賬戶權(quán)限。使用post-update賦予可寫權(quán)限,以便client端可以提交更改。
macOSServer:gitosis GitServer$ sudo chmod 755 /Users/GitServer/repositories/gitosis-admin.git/hooks/post-update
macOSServer:.ssh GitServer$ cd ~
macOSServer:~ GitServer$ cd repositories/
macOSServer:repositories GitServer$ ls
gitosis-admin.git
macOSServer:repositories GitServer$
在上面的命令中可以看到,gitosis也是作為倉庫的形式給出,
然后對gitosis進(jìn)行配置管理等都可以在客戶端進(jìn)行,而無需使用服務(wù)器的GitServer賬戶進(jìn)行。
4、修改GitServer賬戶的PATH路徑,在終端輸入如下命令:
macOSServer:gitosis GitServer$ touch ~/.bashrc
macOSServer:gitosis GitServer$ echo PATH=/usr/local/bin:/usr/local/git/bin:\$PATH > .bashrc
macOSServer:gitosis GitServer$ echo export PATH >> .bashrc
macOSServer:gitosis GitServer$ cat .bashrc
PATH=/usr/local/bin:/usr/local/git/bin:$PATH
export PATH
至此,服務(wù)器的配置完成。
五、客戶端配置
1、在終端輸入如下命令修改配置信息:
配置 local 的git信息
MacBook-Pro:~ dzq$ git config --global user.namedongzhuoqiong
MacBook-Pro:~ dzq$ git config --global user.email ***@gmail.com
配置某個(gè)倉庫信息
MacBook-Pro:AnySayGit dzq$ git config user.name dongzhuoqiong
MacBook-Pro:AnySayGit dzq$ git config user.email dongdzq@gmail.com
注意:以上兩種方式二選一。
2、測試服務(wù)器是否連接正確
MacBook-Pro:~ dzq$ ssh GitServer@172.17.12.156

服務(wù)器鏈接是否正常
3、在本地克隆服務(wù)器倉庫,下面gitosis-admin.git為例:
Last login: Wed May 30 09:44:41 on ttys003
MacBook-Pro:~ dzq$ cd /Users/dzq/Desktop/
MacBook-Pro:Desktop dzq$ git clone GitServer@172.17.12.156:repositories/gitosis-admin.git
Cloning into 'gitosis-admin'...
Enter passphrase for key '/Users/dzq/.ssh/id_rsa':
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 5 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (5/5), done.
MacBook-Pro:Desktop dzq$
4、在客戶端管理gitosis-admin倉庫,給其他賬號權(quán)限等
??在 gitosis-admin 中 gitosis.conf 文件是用來設(shè)置用戶、倉庫和權(quán)限的控制文件。keydir 目錄則是保存所有具有訪問權(quán)限賬號公鑰的地方一個(gè)賬號對應(yīng)一個(gè).pub文件。

keydir目錄

gitosis.conf