Centos+git+gitolite 安装和部署

1.部署环境

系统:CentOS 7 最小化安装
  

2.安装基础依赖包

一路YES安装:

[root@xiao ~]# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel -y

3.在线安装git

[root@xiao ~]# yum -y install git 

下载安装包安装方式:

[root@xiao ~]# wget https://www.kernel.org/pub/software/scm/git/git-2.2.0.tar.gz
[root@xiao ~]# tar xf git-2.2.0.tar.gz
[root@xiao ~]# cd git-2.2.0/

指定安装目录:方便删除,只要删除一个目录即可。

如果不指定prefix,则:

可执行文件默认放在/usr/local/bin

库文件默认放在/usr/local/lib

配置文件默认放在/usr/local/etc

其它的资源文件放在/usr/local/share

[root@xiao git-2.2.0]# make prefix=/usr/local/git all
[root@xiao git-2.2.0]# make prefix=/usr/local/git install

4.增加软连接

符号连接(Symbolic Link),也叫软连接。软链接文件有类似于Windows的快捷方式。

它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

[root@xiao git-2.2.0]# ln -s /usr/local/git/bin/* /usr/bin/

验证结果,显示出版本号,表示安装成功

[root@xiao git-2.2.0]# git --version

git version 2.2.0

5.创建git用户

创建用户时,指定用户所使用的shell(-s):

[root@xiao ~]# useradd -s /bin/bash git

切换到git用户:

[root@xiao ~]# su - git
[git@xiao ~]$ pwd                 #查看当前位置

/home/git

确认.ssh/authorized_key是否存在

[git@xiao ~]$ ls -a

. .. .bash_logout .bash_profile .bashrc .gnome2 .mozilla

6.获取git版本库并安装

克隆gitolite仓库:

[git@xiao ~]$ git clone https://github.com/sitaramc/gitolite

然后创建bin目录并安装gitolite 到bin目录($ 表示普通用户)

[git@xiao ~]$ mkdir $HOME/bin
[git@xiao ~]$ gitolite/install -to $HOME/bin
[git@xiao ~]$ cd bin/
[git@xiao bin]$ ls

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

7.配置gitolite管理员

gitolite 使用特殊的版本库gitolite-admin 来管理用户和版本库,所以需要创建一个管理员来管理所有的用户和版本库

7.1 用git用户生成公钥

如果你是接着上面一直做下来的,那么只需要输入cd ,然后回车,则就进入了该用户的目录,如果不是git用户,则需要输入su – git,来切换到git用户.

[git@xiao ~]cd
[git@xiao ~]$ ssh-keygen -t rsa

7.2 修改.ssh/id_rsa.pub 为admin.pub

为什么要改成admin.pub 因为gitolite根据这个文件名来设立帐号.我这里用admin

[git@xiao ~]$ mv .ssh/id_rsa.pub admin.pub

7.3 使用管理员公钥安装gitolite

(然后去/home/git/repositories 里面,可以看见仓库文件.gitolite-admin.git 和test.git 一个是管理仓库的,一个是测试用)

[git@xiao ~]$ $HOME/bin/gitolite setup -pk admin.pub

7.4 生成管理员管理仓库

(不需要输密码)

[git@xiao ~]$ git clone git@127.0.0.1:gitolite-admin

进入仓库后可以看到conf 和keydir ,

conf/gitolite.conf 是添加用户/仓库的配置,

keydir 是放客户端的公钥(客户端连接服务器用).并且此时,admin.pub这个公钥可以删除了

7.5 编辑gitolite.conf

[git@xiao ~]$ vim gitolite-admin/conf/gitolite.conf

编辑内容(用户名与keydir中的.pub文件名一致即可):

@admin = admin
@user = root test1 test2

repo gitolite-admin
    RW+ = admin

repo project
    RW+ = @admin
    RW  = @user

上面的配置含义是:

定义两个用户组: adminuser

定义两个版本库: gitolite-admintesting

用户admin对这两个版本库有(读 写 删除)RW+ 权限

user组对project 有(读 写)RW 权限

也可按照格式,添加多个组,多个版本库

7.6 然后提交修改

提交修改:

[git@xiao conf]$ git add keydir/test.pub conf/gitolite.conf
[git@xiao conf]$ git add . 
[git@xiao conf]$ git commit -am "new project"
[git@xiao conf]$ git push origin master

7.7 提交完后,查看管理仓库中多了一个project.git

[git@xiao ~]$ cd repositories/
[git@xiao repositories]$ ls

gitolite-admin.git project.git

这个时候,服务器已经搭建完毕了,只需要添加用户并给用户添加权限就可以了。

7.8 权限控制

查看管理员git库状态:

[root@xiao gitolite-admin]# git status

将有改动的文件添加到git库:

[root@xiao gitolite-admin]# git add keydir/test.pub conf/gitolite.conf 
[root@xiao gitolite-admin]# git status
[root@xiao gitolite-admin]# git commit -m "add repo mytest; add user test"

在这里我们执行以下2条命令表明身份:

[root@xiao gitolite-admin]# git config --global user.email "jeiker@126.com"
[root@xiao gitolite-admin]# git config --global user.name "jeiker"

再重新执行git commit命令:

[root@xiao gitolite-admin]# git commit -m "add repo mytest; add user test"

执行完以上命令后,修改的文件只是提交在本地了,并没有提交到git server中,还需要执行git push命令。

推送到远端的master分支:

确保remote origin的仓库名是对的:

[root@xiao gitolite-admin]# git push origin master

git remote 命令

不带参数,列出已经存在的远程分支:

# git remote 

列出详细信息,在每一个名字后面列出其远程url:

# git remote -v | --verbose 

删除远程仓库

# git remote rm origin

添加远程仓库

要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,运行:

# git remote add [shortname] [url]:

例如:

# git remote add origin git@192.168.189.22:test.git

要抓取所有 Paul 有的,但本地仓库没有的信息,可以运行

# git fetch origin

Paul 的主干分支(master)已经完全可以在本地访问了,对应的名字是 origin/master

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值