centos下搭建git服务端
公司开始从svn转向git了,要求在公司内部搭建个git服务端,下面就是git服务端搭建过程.
系统:centos 5.5
git服务端:192.168.1.253 (linux)
git客户端:192.168.1.155 (linux)
1.安装git
如果没有安装git的话,可以去看我这篇文章centos下两种方法安装git.
2.安装gitosis
yum install python python-setuptools -y
ps:python-setuptools是必须安装的,不然后面是无法进行的.
git clone git://github.com/res0nat0r/gitosis.git
cd gitosis
python setup.py install
可以看到gitosis已经安装成功了.
3.添加git用户
useradd -m git
创建git用户成功后,以后登录git用户需要首先登录root帐号,再su - git
4.在客户端生成公共密钥
ssh-keygen -t rsa #不需要密码,一路回车就行,如图
scp ~/.ssh/id_rsa.pub root@192.168.1.253:/tmp/ # 上传你的ssh public key到服务端
5.服务端初始化gitosis
要使用su - git切换到git用户下
gitosis-init < /tmp/id_rsa.pub
6.客户端获取并配置gitosis-admin
客户端也要安装得有git.
git clone git+ssh://git@192.168.1.253/gitosis-admin.git
这里要说下,如果你的ssh端口不是22的话,那就用下面的命令
git clone git+ssh://git@192.168.1.253:port/gitosis-admin.git
获取gitosis管理项目,将会产生一个gitosis-admin的目录,里面有配置文件gitosis.conf和一个keydir的目录,keydir目录主要存放git用户名.
vi gitosis-admin/gitosis.conf # 编辑gitosis-admin配置文件
[group gitosis-admin]
writable = gitosis-admin
members = root@testvps
这个是管理组的权限,members中的用户名就是刚才上传的公钥里面的用户名.在这个文件后面加入:
[group test]
writable = gitosis-test
members = root@testvps
ps:
[group 组名]
writable = 项目名
members = 用户
这里你定义了一个叫test的组,授予root@testvps这个用户写"gitosis-test"这个repo的权限.
cd gitosis-admin
git add . #留意后面有一个点
git commit -a -m "Allow root write access to gitosis-test"
git push
好了,这样就完成gitosis的初始化了,下面就该开始创建gitosis-test的repo了.
7.创建gitosis-test库
mkdir gitosis-test && cd gitosis-test
git init
git add . # 新增文件,留意后面有一个点
git commit -a -m "gitosis-test"
然后把gitosis-test这个库放到服务端去
git remote add origin git@192.168.1.253:gitosis-test.git
git push origin master
也可以执行
git push git@192.168.1.253:gitosis-test.git
好了,可以看到已经成功了.
系统:centos 5.5
git服务端:192.168.1.253 (linux)
git客户端:192.168.1.155 (linux)
1.安装git
如果没有安装git的话,可以去看我这篇文章centos下两种方法安装git.
2.安装gitosis
yum install python python-setuptools -y
ps:python-setuptools是必须安装的,不然后面是无法进行的.
git clone git://github.com/res0nat0r/gitosis.git
cd gitosis
python setup.py install
可以看到gitosis已经安装成功了.
3.添加git用户
useradd -m git
创建git用户成功后,以后登录git用户需要首先登录root帐号,再su - git
4.在客户端生成公共密钥
ssh-keygen -t rsa #不需要密码,一路回车就行,如图
scp ~/.ssh/id_rsa.pub root@192.168.1.253:/tmp/ # 上传你的ssh public key到服务端
5.服务端初始化gitosis
要使用su - git切换到git用户下
gitosis-init < /tmp/id_rsa.pub
6.客户端获取并配置gitosis-admin
客户端也要安装得有git.
git clone git+ssh://git@192.168.1.253/gitosis-admin.git
这里要说下,如果你的ssh端口不是22的话,那就用下面的命令
git clone git+ssh://git@192.168.1.253:port/gitosis-admin.git
获取gitosis管理项目,将会产生一个gitosis-admin的目录,里面有配置文件gitosis.conf和一个keydir的目录,keydir目录主要存放git用户名.
vi gitosis-admin/gitosis.conf # 编辑gitosis-admin配置文件
[group gitosis-admin]
writable = gitosis-admin
members = root@testvps
这个是管理组的权限,members中的用户名就是刚才上传的公钥里面的用户名.在这个文件后面加入:
[group test]
writable = gitosis-test
members = root@testvps
ps:
[group 组名]
writable = 项目名
members = 用户
这里你定义了一个叫test的组,授予root@testvps这个用户写"gitosis-test"这个repo的权限.
cd gitosis-admin
git add . #留意后面有一个点
git commit -a -m "Allow root write access to gitosis-test"
git push
好了,这样就完成gitosis的初始化了,下面就该开始创建gitosis-test的repo了.
7.创建gitosis-test库
mkdir gitosis-test && cd gitosis-test
git init
git add . # 新增文件,留意后面有一个点
git commit -a -m "gitosis-test"
然后把gitosis-test这个库放到服务端去
git remote add origin git@192.168.1.253:gitosis-test.git
git push origin master
也可以执行
git push git@192.168.1.253:gitosis-test.git
好了,可以看到已经成功了.
评论: