硬體:雲端阿里雲伺服器
軟體:雲端: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 "
"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@svr
bgit@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
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 "
"git@zxk:/repo/top1$
git config --add user.name "bliss"
git@zxk:/repo/top1$
git config --add user.email "
"git@zxk:/repo/top1$
git config --add user.name "dummy"
git@zxk:/repo/top1$
git config --add user.email "
"這些資訊被新增在當前專案倉庫的.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 "
"如果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...