Chinaunix首页 | 论坛 | 博客
  • 博客访问: 471501
  • 博文数量: 145
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1139
  • 用 户 组: 普通用户
  • 注册时间: 2014-01-14 16:47
个人简介

路漫漫其修远兮,吾将上下而求索

文章分类

全部博文(145)

文章存档

2016年(10)

2015年(15)

2014年(120)

我的朋友

分类: 系统运维

2014-04-02 17:24:44

 系统: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



好了,可以看到已经成功了.
注意:如果出现下面的错误:

如果出现错误 fatal: '~/gitosis-admin.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly,则改成 sudo git clone git@YOUR_SERVER:/home/git/repositories/gitosis-admin.git,即 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

阅读(1380) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~