当前位置首页 > CentOS知识

CentOS6.*安装gitolite

阅读次数:189 次  来源:admin  发布时间:

http://www.kankanews.com/ICkengine/archives/64748.shtml

2人收藏此文章,

发表于4小时前(2013-10-22 16:12) ,

已有26次阅读 ,共1个评论

安装基础包

# yum install perl openssh git

创建git用户

# adduser git

# passwd git

在git用户家目录下安装gitolite

切换到git用户

# su – git

创建文件夹bi

$ mkdir bi

克隆gitolite源码

$ git clone https://github.com/sitaramc/gitolite.git

$ l

in gitolite

安装gitolite

$ ./gitolite/install -to /home/git/bin/

$ cd bin/

$ l

commands gitolite gitolite-shell lib syntactic-sugar triggers VERSION VREF

配置gitolite管理员

生成管理员账户的公钥(此处指定本地root用户为管理员,键入回车使用默认值)

# ssh-keyge

复制管理的公钥

# cp .ssh/id_rsa.pub /tmp/admin.pu

切换回git用户,为gitolite配置管理员

$ /home/git/bin/gitolite setup -pk /tmp/admin.pub

Initialized empty Git repository in /home/git/repositories/gitolite-admin.git/

Initialized empty Git repository in /home/git/repositories/testing.git/

WARNING: /home/git/.ssh missing; creating a new one

WARNING: /home/git/.ssh/authorized_keys missing; creating a new one

$ l

in gitolite projects.list repositorie

管理员日常管理

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

# git clone git@192.168.213.130:gitolite-admin

Initialized empty Git repository in /root/gitolite-admin/.git/

The authenticity of host ’192.168.213.130 (192.168.213.130)’ can’t be established.

RSA key fingerprint is d4:28:ca:66:58:b6:39:c1:aa:37:58:9a:5b:ed:50:05.

Are you sure you want to continue connecting (yes/no)? ye

# 此处因为第一次ssh连接,所以需要输入’yes’

Warning: Permanently added ’192.168.213.130′ (RSA) to the list of known hosts.

remote: Counting objects: 6, done.

remote: Compressing objects: 100% (4/4), done.

Receiving objects: 100% (6/6), 748 bytes, done.

remote: Total 6 (delta 0), reused 0 (delta 0)

# pwd

/root/gitolite-admi

# l

conf keydir

创建库、添加用户

例如某test123用户访问git服务器上的myFirstRepo库

test123用户向git服务器管理(此处是之前的服务器本地的root用户)提交自己的ssh无密码公钥

管理员将test123的公钥复制到 gitolite-admin/keydir/ 下

# cp test123.pub /root/gitolite-admin/keydir/

管理员创建myFirstRepo库,并给test123分配权限

# cd gitolite-admin/conf/

# vim gitolite.conf

默认内容为:

repo gitolite-admin

RW+ = admi

repo testing

RW+ = @all

下边定义myFirstRepo库,并且指定用户权限:

repo gitolite-admin

RW+ = admi

repo testing

RW+ = @all

@myGroup=admin test123

repo myFirstRepo

RW+ = @myGrou

注:此处@myGroup是一个组,给myGroup组赋予对myFirstRepo这个库的读、写、推送的权限(详细规则可参考gitolite的readme.txt)

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

# pwd

/root/gitolite-admi

# git statu

# On branch master

# Changed but not updated:

# (use “git add <file>…” to update what will be committed)

# (use “git checkout — <file>…” to discard changes in working directory)

#

# modified: conf/gitolite.conf

#

# Untracked files:

# (use “git add <file>…” to include in what will be committed)

#

# keydir/test123.pu

o changes added to commit (use “git add” and/or “git commit -a”)

# git add *

# git commit -m “AddRepo:myFirstRepo;AddUser:test123″

[master 4c5a5d0] AddRepo:myFirstRepo;AddUser:test123

Committer: root <root@app-node-V-CC.(none)>

Your name and email address were configured automatically based

on your username and hostname. Please check that they are accurate.

You can suppress this message by setting them explicitly:

git config –global user.name “Your Name”

git config –global user.email you@example.com

If the identity used for this commit is wrong, you can fix it with:

git commit –amend –author=’Your Name <you@example.com>’

2 files changed, 6 insertions(+), 0 deletions(-)

create mode 100644 keydir/test123.pu

注:提示是建议设置用户信息(便于多人协作时辨别),可参照提示命令操作(其实git自动为你添加了)

# git push origin master

Counting objects: 10, done.

Delta compression using up to 2 threads.

Compressing objects: 100% (5/5), done.

Writing objects: 100% (6/6), 859 bytes, done.

Total 6 (delta 0), reused 0 (delta 0)

remote: Initialized empty Git repository in /home/git/repositories/myFirstRepo.git/

To git@192.168.213.130:gitolite-admi

48a7307..4c5a5d0 master -> master

客户验证

test123用户克隆myFirstRepo库

$ git clone git@192.168.213.130:myFirstRepo

Initialized empty Git repository in /home/test123/myFirstRepo/.git/

warning: You appear to have cloned an empty repository.

$ l

myFirstRepo

test123用户初始化myFirstRepo库

$ touch test.sh

$ git add test.sh

$ git statu

# On branch master

#

# Initial commit

#

# Changes to be committed:

# (use “git rm –cached <file>…” to unstage)

#

# new file: test.sh

#

$ git commit -m “InitRepo:myFirstRepo”

$ git push origin master

Counting objects: 3, done.

Writing objects: 100% (3/3), 224 bytes, done.

Total 3 (delta 0), reused 0 (delta 0)

To git@192.168.213.130:myFirstRepo

* [new branch] master -> master

SSH非22端口通信

本地或gitolite服务器使用非ssh默认端口,会出现错误,可通过下列方法解决

$ vim ~/.ssh/config

添加 如下内容

host ${ip_of_gitolite_server}

ort ${post_of_yours}

ubuntu12.04上安装gitolite,照猫画虎就行

声明:OSCHINA 博客文章版权属于作者,受法律保护。未经作者同意不得转载。

上一篇:fedora23安装配置记录
下一篇:CentOS7最小安装之后应该尽快做好的几件事情