环境:
Git Server
IP: 192.168.1.40
Git Client
IP: 192.168.1.88
1. 在 Git Server
安装软件所需的依赖包
yum install curl-develexpat-devel gettext-devel openssl-devel zlib-devel perl-devel pythonpython-setuptools -y
2. 下载GIT 最新版本源码包(也可以yum安装)
tar zxvf git-1.9.0.tar.gz
cd git-1.9.0
make prefix=/usr/local/gitall
make prefix=/usr/local/gitinstall
ln -s /usr/local/git/bin/*/usr/bin/
git --version 表示安装成功
3. 安装gitosis
cd /opt/software
git clonegit://github.com/res0nat0r/gitosis.git
cd gitosis
python setup.py install
Finished processingdependencies for gitosis==0.2 提示 这个表示安装成功
3. Client 上创建密钥,然后上传至 server上面
ssh-keygen -t rsa
#一路回车,不需要设置密码
scp ~/.ssh/[email protected]:/tmp/
4. 在Git Server上生成git用户
adduser git
#导入Git Client的秘钥
#切换到git用户
su git
#服务器的公钥(刚才开发机客户端上传),导入后此开发机客户端即可以管理git服务器。
gitosis-init < /tmp/id_rsa.pub
#删除密钥
su root
rm -rf /tmp/id_rsa.pub
5. 在Client(需要安装git) 上导出项目管理
mkdir -p /opt/git
cd /opt/git
git [email protected]:gitosis-admin.git
6. 增加用户,以及设置管理项目
cd /opt/git/gitosis-admin
编辑 gitosis.conf
[group test] #组名称
members = root@bogon #密钥用户名, members可以填多个用户,用户之间空格分隔
writable= test #项目名称, writable为可写,只读为readonly,设置为只读则只能pull不能push
7. 初始化git
git config --global user.namesl
git config --globaluser.email [email protected]
git add .
git commit -a -m "addtest repo"
git push
8. 初始化,增加以及使用tes项目
cd /opt/git
mkdir test
cd test
git init
touch jicki
git add .
git commit -a -m "inittest"
git remote add [email protected]:test.git
git push origin master
9. 检查Git Server上面是否同步
cd /home/git/repositories/
ls
gitosis-admin.git test.git #有同步test-git这个目录,说明成功。
10. 客户端增加其他成员公钥到系统中:通过添加用户的公钥到keydir目录即可,
#用户在自己电脑的默认目录(mac中为~/.ssh/)下生成或者拿到id_rsa.pub文件,然后传给管理员。(注意:id_rsa.pub最后的邮箱部分不能用数字)
#管理员将文件改名,例如改为abc.pub,此时abc就是此用户的用户名。然后放入gitosis-admin/keydir/目录下。
cd /git-repo/gitosis-admin
cp /path/to/member/public/key keydir/
git add keydir/member.pub
#修改gitosis.conf
[group test] #组名称
members = jay # 新的密钥用户名
writable = test
#提交修改:
git commit -a -m “granted jay commit rightsto test”
git push