最近开发说需要搭建一个git服务器来用,就顺便学了下,也记下来方便以后参考


安装GIT


## 安装依赖包

yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel


## 安装libiconv依赖包

wget http://ftp.gnu.org/gnu/libiconv/libiconv-1.14.tar.gz
tar -xf libiconv-1.14.tar.gz 
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make 
make install


## 添加用户

groupadd git
useradd -g git git


## 下载最新版本并安装

wget https://github.com/git/git/archive/master.zip
unzip master.zip
cd git-master
make configure
./configure --prefix=/usr/local/git --with-iconv=/usr/local/libiconv
make 
make install

* 当然,上面的操作也可以用官网的方法,不过安装的便不是最新的版本,而是系统适配的版本

yum install git


## 查看版本

[root@yw_home ]# git --version
git version 2.1.0-rc0


* 如果能正常看到版本号,说明你安装Git成功了.接下来安装gitolite




## gitolite 的安装就比较简单了,登陆到 git账户,或是su到git账户后继续操作

su - git


## 生成一对测试用的key,或是用已有的key测试下

[git@git git]# mkdir /home/git/.ssh
[git@git git]# chmod 700 /home/git/.ssh
[git@git git]# cd /home/git/.ssh
[git@git git]# ssh-keygen -b 1024 -t rsa -f job
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in job.
Your public key has been saved in job.pub.
The key fingerprint is:
bb:90:6e:37:75:3a:6d:f5:81:eb:e4:7b:36:31:69:41 root@Localhost
The key's randomart image is:
+--[ RSA 1024]----+
|                 |
|               E |
|              .  |
|               . |
|        S     . o|
|       . .. ...* |
|      o .. + oo.+|
|     ...o.o =. +.|
|     ..... o.++ .|
+-----------------+
[root@yw_home git]# ls .ssh/
job  job.pub


## 开始安装gitolite

cd /home/git
git clone git://github.com/sitaramc/gitolite
mkdir -p /home/git/bin
/home/git/gitolite/install -to /home/git/bin
ln -s /home/git/bin/gitolite /usr/bin/gitolite 
gitolite setup -pk .ssh/job.pub

* 执行完最后一步后,git会生成以下文件夹,其中gitolite-admin.git 便是权限管理库

/.gitolite
./repositories
./repositories/gitolite-admin.git
./repositories/testing.git


* 好吧,到了这一步,其实gitolite的管理端就完成了,

  接下来要做的就是怎么从客户端更改git权限库呢。




#####  从客户机管理权限库,最好是利用不同的机器,且机器上已经安装了git环境,如果没安装,就参照第一部分进行安装

##默认22端口的连接
git clone git@serverhost:gitolite-admin
##特别指定端口的连接
git clone ssh://git@serverhost:22/gitolite-admin


## 完成后会在命令执行目录看到gitolite-admin库,里面的结构如下

 

./gitolite-admin/.git
./gitolite-admin/keydir
./gitolite-admin/keydir/job.pub
./gitolite-admin/conf
./gitolite-admin/conf/gitolite.conf


## 其中keydir就是存放公钥的地方,新家公钥只要添加到这里,gitolite.conf就是库的配置文件,也是可以限制权限的地方,内容类似

repo gitolite-admin
    RW+     =   job
repo testing
    RW+     =   @all




更多的内容参考下面文件,gitolite的安装配置

http://roclinux.cn/?p=2553

http://git-scm.com/book/zh/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-Gitolite