|
安装git
关于安装git 可以参考 http://gitolite.com/gitolite/install.html 里面有官方的介绍
1. Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
2. 然后到官网http://git-scm.com/download/linux下载最新版本源码安装,或者使用系统提供的包管理工具安装.
wget https://www.kernel.org/pub/software/scm/git/git-2.3.5.tar.gz
3. 下载后解压 进入文件夹
tar xzf git-2.3.5.tar.gz
cd git-2.3.5
4. 网上找了半天资料发现没有有用的自己翻看 readme来解决 通过readme 知道安装需要查看 install 文件
Normally you can just do "make" followed by "make install", and that
will install the git programs in your own ~/bin/ directory. If you want
to do a global install, you can do
$ make prefix=/usr all doc info ;# as yourself
# make prefix=/usr install install-doc install-html install-info ;# as root
(or prefix=/usr/local, of course).
我这采用的是:
make prefix=/usr/local all
make prefix=/usr/local install
git --version #如果能显示版本号,即表示成功
5. 为git增加专门用户
# adduser git
# passwd git
在git用户家目录下安装gitolite
6. 切换到 git用户
# su – git //记住 切换后默认计入 git 家目录
如果切换后 变成
bash-4.1$ 请参考 linux问题: 切换用户之后变成-bash-4.1$
7. 创建文件夹bin
$ mkdir bin //如果不在 git家目录下 可以 输入 $mkdir -p $HOME/bin
8. 克隆gitolite源码
$ git clone https://github.com/sitaramc/gitolite.git
$ ls
bin gitolite
9. 安装gitolite
$ ./gitolite/install -to /home/git/bin/ 或 $ gitolite/install -to $HOME/bin
$ cd bin/
$ ls
commands gitolite gitolite-shell lib syntactic-sugar triggers VERSION VREF
配置gitolite管理员
10. 生成管理员账户的公钥
# ssh-keygen (此处指定本地root用户为管理员,键入回车使用默认值)
复制管理的公钥
# cp .ssh/id_rsa.pub /tmp/git.pub
11. 切换回git用户,为gitolite配置管理员
$ /home/git/bin/gitolite setup -pk /tmp/git.pub
$ ls
bin gitolite projects.list repositories
管理员日常管理
12. 管理员clone管理库
git clone git@localhost:gitolite-admin
# pwd
/root/gitolite-admin
# ls
conf keydir
13. 创建库、添加用户
例如某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+ = admin
repo testing
RW+ = @all
下边定义myFirstRepo库,并且指定用户权限:
repo gitolite-admin
RW+ = admin
repo testing
RW+ = @all
@myGroup=admin test123
repo myFirstRepo
RW+ = @myGroup
注:此处@myGroup是一个组,给myGroup组赋予对myFirstRepo这个库的读、写、推送的权限(详细规则可参考gitolite的readme.txt)
管理员将对gitolite-admin的修改(建库、加用户)提交到git服务器
# pwd
/root/gitolite-admin
# git add *
# git commit -m
或者命令如下:
把gitolite-admin下的变更都commit,并push到服务器上
。服务器上的Gitolite会根据内容自动建立新的git版本库,并放置在服务器专有账号主目录下的repositories文件夹下:
git add conf
git add keydir
git commit -m "added foo repo, gave access to Jason"
git push |
|