快速搭建Git服务器的设置命令行

来源: | 2015-04-29 09:36

1安装软件

1)源码包方式

安装包:git-2.2.0.tar.gz        //可去官网下载http://www.git-scm.com/downloads # yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel # tar zxf git-2.2.0.tar.gz # cd git-2.2.0 # make prefix=/app/public/git all # make prefix=/app/public/git install # ln -s /app/public/git/bin/* /usr/bin/   

2) rpm包方式

# yum install git  

2 创建git用户

# adduser git  # passwd git  

3 在git用户家目录下安装gitolite

切换到git用户 # su - git   创建文件夹bin $ mkdir bin   克隆gitolite源码 $ git clone https://github.com/sitaramc/gitolite.git  $ ls  bin  gitolite   安装gitolite $ ./gitolite/install -to /home/git/bin/ $ ls bin/  commands  gitolite  gitolite-shell  lib  syntactic-sugar  triggers  VERSION  VREF  

4 配置gitolite管理员

复制管理员的公钥到/tmp下(此处用本机root做管理员,也可以使用其他用户) # cp /root/.ssh/id_rsa.pub /tmp/admin.pub   切换回git用户,为gitolite配置管理员  # su - git $ /home/git/bin/gitolite setup -pk /tmp/admin.pub  $ ls  bin  gitolite  projects.list  repositories

5 管理员日常管理

1) 管理员clone管理库(此处为本地root用户) 

# git clone git@192.168.100.1:gitolite-admin  (192.168.100.1为git服务器IP)  

2)添加用户的公钥

例如我要让jinjj用户访问git服务器上的projectA库   jinjj用户向git服务器管理(此处是之前的服务器本地的root用户)提交自己的ssh无密码公钥  将jinjj用户的公钥命名为jinjj.pub
管理员将jinjj的公钥复制到 gitolite-admin/keydir/ 下  # cp jinjj.pub gitolite-admin/keydir/

3)创建库,分配用户权限

管理员创建projectA库,并给jinjj分配权限  # cd gitolite-admin/conf/  # vim gitolite.conf 下边定义projectA库,并且指定用户权限,在原配置文件基础上添加如下内容: …… @myGroup=admin  jinjj      //定义myGroup组,包含admin和jinjj2个用户 repo projectA   //定义git仓库名为projectA RW+ =   @myGroup    //设置权限,这里为具有读写,并且允许推送权限   权限规则解释如下: http://www.luyouqiwang.com/sz/              R = @test   //组test 具有只读权限              - = badboy  //禁用指令,让用户badboy只对版本库具有读操作的权限              RW = @dev test1      //组dev, 用户test1对仓库有读写权限              RW+ = @admin     //组admin具有读写权限,并且允许强行推送  

4)管理员将对gitolite-admin的修改(建库、加用户)提交到git服务器

# git status # git add gitolite.conf # git commit -m "AddRepo:projectA;AddUser:jinjj" # git push origin master        这里补充一点,git的版本库都位于服务器端用户目录下的repositories目录下,这是由.gitolite.rc决定的。 推送成功后,可以看到repositories目录下多了一个projectA的版本库. $ ls /home/git/repositories gitolite-admin.git projectA.git testing.git  

6客户端验证

jinjj用户克隆projectA库 $ git clone git@192.168.100.1:projectA $ ls projectA 由于是新库,里面什么都没有 然后就可以进入到projectA库内,进行创建文件,修改,提交等操作。
猜你喜欢
推荐
随机推荐
相关文档
月排行文档
Top