使用Gitosis在CentOS下搭建Git服务器
https://www.cnblogs.com/walter371/p/4143517.html
1. 安装git客户端(服务器端)
1.1 安装依赖包
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
1.2 安装git
yum install git
1.3 验证git是否安装成功
git --version
2. 安装gitosis
2.1 gitosis地址
https://github.com/res0nat0r/gitosis
2.2 安装gitosis(服务器端)
# 安装python
yum install python python-setuptools
# 克隆gitosis
git clone git://github.com/res0nat0r/gitosis.git
# 安装gitosis
cd gitosis
python setup.py install
2.3 生成公共秘钥(开发环境机器)
ssh-keygen -t rsa #不需要密码,一路回车就行(在本地操作)
2.4 使用命令上传公钥到服务器(开发环境机器)
scp ~/.ssh/id_rsa.pub root@xxx:/tmp/ # 上传你的ssh public key到服务器
也可以借助SSH工具上传
2.5 创建用户(服务器端)
服务器上生成git用户,使用git用户并初始化gitosis
adduser -m git
su - git
gitosis-init < /tmp/id_rsa.pub
# 显示以下信息即表示成功
# Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
# Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/
2.6 克隆gitosis-admin.git管理版本库(开发环境机器)
gitosis-admin.git
版本库的作用是可以全局管理所有gitosis下面的子版本库,因此clone到本地并修改配置文件,再push到服务器上,就可以实现对其他版本库的管理,如用户、权限等。
git clone ssh://git@服务器IP:SSH端口/gitosis-admin.git
以上操作一切顺利的话,基本的配置已经完成,就可以使用gitosis-admin
管理版本库。
3. 创建版本库(开发环境机器)
3.1 编辑项目权限(开发环境机器)
编辑gitosis-admin
目录中的gitosis.conf文件,在文件结尾加上:
[group test-git] # 组名称
writable = test-git # 项目名称
members = XXX@XXX #密钥用户名,参照gitosis-admin组的配置
3.2 上传至服务器(开发环境机器)
git add .
git commit -m ‘add test-git’
git push
3.3 创建项目仓库并提交(开发环境机器)
# 创建项目目录test-git
# 初始化
git init
touch readme
git add .
git commit -a -m "init test-git"
git remote add origin ssh://git@服务器IP:SSH端口/test-git.git
git push origin master
3.4 常用
推送远程分支
git remote add origin ssh://git@服务器IP:SSH端口/test-git.git
git remote add origin ssh://git@服务器IP:22/zhtc-erp.git
解除分支关联
git remote remove origin
可以允许不相关历史提交
git pull origin master --allow-unrelated-histories
克隆
git clone ssh://git@服务器IP:22/zhtc-erp.git