1安装git(如果已安装忽略此步)
卸载旧的git
yum remove git
安装依赖包
yum install autoconf curl-devel expat-devel openssl-devel zlib-devel perl-devel
下载源码包
- 去官网 git-scm 拷贝链接
- 我所使用的链接: https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
下载到任意位置(装完就删)
wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz
编译安装
tar -zxvf git-2.9.5.tar.gz cd git-2.9.5 ./configure make make install # 需要root权限
制作软链接到
/usr/bin
ln -s /usr/local/bin/git /usr/bin/git
查看版本号
git --version
- 输出:
git version 2.9.5
- 输出:
删除安装包
rm -rf git-2.9.5 git-2.9.5.tar.gz
2 新建用户git
- 我们希望有专门的用户来管理git服务,而不是使用拥有最高权限的root用户
新建用户git,用于运行服务(root用户执行)
useradd git
为新用户创建密钥等信息(git用户执行)
su git # 从root用户转为git cd ~ # 实际上为 /home/git mkdir .ssh chmod 700 .ssh cd .ssh ssh-keygen -t rsa
- 会在
/home/git/.ssh
生成两个文件id_rsa
,id_rsa.pub
- 会在
3 安装gitosis
- 这是一款非常好用的权限管理工具,具体说明自行搜索
安装python以及python工具,一般默认自带2.7.5,可以照样再执行一遍(root用户执行)
yum install python python-setuptools
下载安装gitosis(root用户执行 在~(/root)目录下clone)
git clone git://github.com/res0nat0r/gitosis.git cd gitosis python setup.py install
- 最后输出
Finished processing dependencies for gitosis==0.2
表示成功
- 最后输出
4 配置gitosis
初始化gitosis
su git gitosis-init < /home/git/.ssh/id_rsa.pub chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
先在服务器上把权限管理工程克隆下来
su git cd ~ git clone git@127.0.0.1:gitosis-admin.git clone_gitosis-admin
- 在clone_gitosis-admin目录中有两个文件
- gitosis.conf: 配置权限
- keydir: 存放用户公钥
将自己电脑的密钥文件id_rsa.pub上传到
keydir
目录中,并命名,比如我自己电脑上的公钥命名为lvshuo.pub
配置gitosis.conf
文件(新加lvshuo)
[gitosis]
[group gitosis-admin]
members = git@localhost.localdomain lvshuo
writable = gitosis-admin
在clone_gitosis-admin目录提交
git add -A&git commit -am 'tijiao lvshuo'&git push origin master
本地就克隆版本库 和提交代码到版本库了
例如 git@192.168.223.138:gitosis-admin.git
---------------------------------------------------------------------------------------------
创建一个新git库
#cd /home/git/repositories/
#mkdir testgit.git
#cd testgit.git
#git --bare init
#git config receive.denyCurrentBranch ignore
#chown -R git:git /home/git/repositories/testgit.git
修改/home/git/clone_gitosis-admin下的gitosis.conf
底部添加
[group testgit]
members = git@localhost.localdomain lvshuo
writable = testgit
保存 提交到git
#git add -A&git commit -am 'add testgit lvshuo'&git push origin master
本地就克隆testgit版本库 和提交代码到testgit版本库了
例如 git@192.168.223.138:testgit.git