基於gitosis的Git雲端伺服器配置

2021-09-06 14:48:37 字數 4458 閱讀 8259

硬體:雲端阿里雲伺服器 

軟體:雲端:gitosis + git + ssh

本地:cygwin 或者 gitbash

參考文章:

詳細步驟如下:

1:建立git賬號用於管理git伺服器

useradd -s /bin/bash -d /home/git -g root -m -c "manager for git server" -p git git

其中,-p:指定賬戶git的密碼;

-m:強制建立git賬戶的home目錄;

-d:指定git賬號的home目錄;

-s:指定git賬號的登入shell;

-g:指定git賬戶所屬的使用者組;

-c:指定git賬號的描述;

passwd git 設定git的密碼:此處設定為git

如果在後面使用sudo的時候報錯,需要修改/etc/sudoers檔案

2: 公升級系統

sudo apt-get update

sudo apt-get upgrade

3: 安裝git相關的元件(包括git、openssh)

sudo apt-get install git-core openssh-server openssh-client

4:安裝gitosis

4-1:初始化git伺服器所管理的賬戶(提交**時的賬號)

git@zxk:~$

git config --global user.name "zxk"

git@zxk:~$

git config --global user.email "

[email protected]"

4-2:安裝python的setup tool,為安裝gitosis做準備

git@zxk:~$

sudo apt-get install python-setuptools

4-3:獲取gitosis安裝包

git@zxk:~$

mkdir ~/.gitosis_setop

git@zxk:~$

cd ~/.gitosis_setop/

git@zxk:~/.gitosis_setop$

git clone git:

如果這個不行:

cloning into 'gitosis'...

fatal: unable to connect to eagain.net:

eagain.net[0: 208.78.102.120]: errno=connection refused

則可從如下位置clone gitosis包:

git clone 

4-4:安裝gitosis包

git@zxk:~/.gitosis_setop$

cd gitosis/

git@zxk:~/.gitosis_setop/gitosis$ sudo python setup.py install

若報錯,可通過如下命令解決:

git@zxk:wget

git@zxk:python ez_setup.py

4-5:生成ssh公鑰,並上傳到git伺服器上,或直接使用git賬戶在git伺服器上生成,現在採用git賬戶直接在git伺服器上生成。

git@zxk:~$

ssh-keygen -t rsa

4-6:初始化gitosis

git@zxk:~$

sudo -h -u git gitosis-init < ~/.ssh/id_rsa

initialized empty git repository in /home/git/repositories/gitosis-admin.git/

reinitialized existing git repository in /home/git/repositories/gitosis-admin.git/

gitosis缺省會把git倉庫房子git賬戶的目錄下:也就是/home/git下面

gitosis的有趣之處在於,它通過乙個git倉庫管理配置檔案

倉庫就放在/home/git/repositories/gitosis-admin.git, 我們需要對乙個檔案加個許可權

git@zxk:~$

pwd/home/git

git@zxk:~$

chmod 755 repositories/gitosis-admin.git/hooks/post-update

4-7:配置gitosis, 以控制git客戶端的操作

git@zxk:~$

git clone 

[email protected]:repositories/gitosis-admin.git

git@zxk:~$

cd gitosis-admin/

git@zxk:~/gitosis-admin$

vi gitosis.conf 

[gitosis]

loglevel = debug

[group gitosis-admin]                 #gitosis-admin為git組名;

witeable = gitosis-admin              #gitosis-admin為倉庫名;

members = 

git@zxk

root@zxk

zxk@zxk

#下面兩個group配置實現把倉庫teamwork的唯讀許可權分配給git組team;

#同時,把倉庫teamwork的可寫許可權分配給git組team_ro;

[group team]                          #team為git組名;

writable = teamwork                   #teamwork為倉庫名;

members = 

a@svrb

git@zxk:~/gitosis-admin$

git add -a

git@zxk:~/gitosis-admin$

git commit -m "init gitosis-admin config gitosis.conf"

[master 2691646] init gitosis-admin config gitosis.conf

1 file changed, 4 insertions(+)

git@zxk:~/gitosis-admin$

git push origin master

[email protected]'s

password: 

counting objects: 5, done.

4-8:建立乙個倉庫的儲存位置,並初始化

git@zxk:~$

mkdir -p /repo/top1

git@zxk:~$

cd /repo/top1/

git@zxk:/repo/top1$

git init --bare

#在當前專案倉庫中配置訪問該倉庫的使用者資訊:

git@zxk:/repo/top1$

git config --add user.name "zxk"

git@zxk:/repo/top1$

git config --add user.email "

[email protected]

"git@zxk:/repo/top1$

git config --add user.name "bliss"

git@zxk:/repo/top1$

git config --add user.email "

[email protected]

"git@zxk:/repo/top1$

git config --add user.name "dummy"

git@zxk:/repo/top1$

git config --add user.email "

[email protected]

"這些資訊被新增在當前專案倉庫的.git/config檔案的[user]段中了;

如果git config命令加上--global選項,那些這些使用者資訊就會被新增到~/.gitconfig檔案的[user]段中;

如:git@zxk:/repo/top1$

git config --global --add user.name "zhangsan"

git@zxk:/repo/top1$

git config --global  --add user.email "

[email protected]"

如果git config命令加上--file選項,那些這些使用者資訊就會被新增到--file所指定的檔案的[user]段中;

4-9:在客戶端直接clone該倉庫就可以了;

git clone 

[email protected]:/repo/top1

test

然後初始化第乙個版本的資料並提交;

基於gitosis的Git雲端伺服器配置

硬體 雲端阿里雲伺服器 軟體 雲端 gitosis git ssh 本地 cygwin 或者 gitbash 參考文章 詳細步驟如下 1 建立git賬號用於管理git伺服器 useradd s bin bash d home git g root m c manager for git server...

基於gitosis管理git伺服器

新增乙個新專案 git clone git server gitosis admin.git keydir是放公鑰的 gitosis.conf是用來配置專案許可權的 group gitosis admin 這是分組 members 是成員,成員間用空格分開,這邊的成員名,來自於keydir下面的pu...

git版本控制gitosis的安裝與使用

gitosis是git下的許可權管理工具,通過乙個特殊的倉庫 gitosis admin.git 對git許可權進行管理。一 服務端安裝並配置gitosis 1 通過以下方式獲取到安裝包 root wz home git git clone 2 使用python進行安裝 root wz home g...