CentOs上搭建git服務器
CentOs上搭建git服務器
首先安裝setuptools
- wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
- tar zxvf setuptools-0.6c11.tar.gz
- cd setuptools-0.6c11
- python setup.py build
- python setup.py install
在服務器(CentOs)上首先安裝git軟件
- yum insatll git
安裝gitosis
- git clone git://github.com/res0nat0r/gitosis.git
- cd gitosis
- python setup.py install
添加用戶git
sudo useradd -r -s /bin/sh -c 'git version control' -d /home/git git
設置權限
mkdir -p /home/git
chown git:git /home/git
ssh登陸驗證
- cat kailuzhe_rsa.pub >> authorized_keys authorized_keys存在,追加
- mv kailuzhe_rsa.pub authorized_key authorized_keys不存在,改名
生成公鑰
- ssh-keygen -t rsa
上傳公鑰
- scp ~/.ssh/id_rsa.pub USER@YOUR_SERVER:/tmp
在服務端生成管理庫
- sudo -H -u git gitosis-init < /tmp/id_rsa.pub
看到如下提示說明安裝成功
Initialized empty Git repository in /var/spool/gitosis/repositories/gitosis-admin.git/ Reinitialized existing Git repository in /var/spool/gitosis/repositories/gitosis-admin.git/
修改上傳權限
- chmod 755 /var/spool/gitosis/repositories/gitosis-admin.git/hooks/post-update
同步配置文件
- git clone git+ssh://git@118.123.16.30:22000/gitosis-admin.git
創建新的repositories
打開gitosis.conf文件,你將看到
[group gitosis-admin]
writable = gitosis-admin
members = nasa127@localhost
這個是管理組的權限,members中的用戶名就是剛才上傳的公鑰里面的用戶名。 在這個文件后面加入:
[group myteam]
members = nasa127@localhost
writable = diablo3_spider
這里你定義了一個叫myteam的組,授予nasa127@localhost這個用戶寫“diablo3_spider”這個repo的權限
git commit -a -m "Allow nasa write access to diablo3_spider"
git push
上面的操作就更新了服務端的權限。 下面就開始創建diablo3_spider的repo
mkdir diablo3_spider
cd diablo3_spider
git init
隨便加一些文件提交代碼:
git remote add origin git@YOUR_SERVER_HOSTNAME:diablo3_spider.git
git add .
git commit -a -m "initial import"
git push origin master:refs/heads/master
接下來,可以增加成員的公鑰到系統中了
cd gitosis-admin
cp ~/Administrator@SUNPX-PC.pub keydir/
cp ~/tongzhongqian@localhost.pub keydir/
git add keydir/Administrator@SUNPX-PC.pub keydir/tongzhongqian@localhost.pub
修改gitosis.conf
[group fractalist]
members = nasa127@localhost Administrator@SUNPX-PC tongzhongqian@localhost
writable = GTFund-iPad
提交修改:
git commit -a -m "Granted sunpx and qtz commit rights to diablo3_spider"
git push
其它成員就可以獲取代碼了
git clone git@YOUR_SERVER:diablo3_spider.git
其他
對Git設置端口號
git+ssh://git@YOUR_SERVER:PORT/GTFund-iPad.git
git remote add origin git+ssh://git@YOUR_SERVER:PORT/GTFund-iPad.git
參考文檔
- http://blog.prosight.me/index.php/2009/07/271
- http://blog.chinaunix.net/uid-26337130-id-3027600.html
- https://github.com/res0nat0r/gitosis#using-gitweb
- http://www.jiangmiao.org/blog/1600.html
- http://hi.baidu.com/unspace/blog/item/81cef0d33db0f3c0a9ec9ab0.html
- http://code.google.com/p/tortoisegit/
來自:http://www.cnblogs.com/nasa/archive/2012/05/31/2528901.html