一、背景
公司搭建自己的git私人代码托管服务器,一般是处于安全考虑
二、搭建C/S架构
2.1 资源规划
服务端S:192.168.100.160 Red Hat 7.6 x64
2.2 安装的组件/软件
三、安装部署
3.1 服务端上的操作
3.1.1 安装git
# 下载源码git
su - root
cd /usr/local/src/
wget -c https://www.kernel.org/pub/software/scm/git/git-2.27.0.tar.gz
# 解压
tar -zxvf git-2.27.0.tar.gz
# 检查一下系统是否已装过git
git --version
# 编译安装
yum -y install libcurl-devel openssl-devel expat-devel zlib-devel
cd git-2.27.0
make prefix=/usr/local/git all -j 16
make prefix=/usr/local/git install -j 16
# 创建软链接
ln -s /usr/local/git/bin/* /usr/bin/
# 验证
git --version ### 输出以下结果
3.1.2 安装gitosis
# 安装依赖包
yum -y install python-setuptools
# 下载包
cd /usr/local/src
git clone git://github.com/res0nat0r/gitosis.git ### 如果拒绝多次,可以采用下载zip包,上传到服务器上,解压
cd gitosis
四、管理
4.1 客户端上操作(windows系统或Linux系统均可)
# 安装git,下载后按默认配置安装完毕,右键鼠标会出现git bash here 命令行工具
# 打开git bash here 工具,使用 ssh-keygen 命令生成客户端用户的密钥,一路回车,不需要设置密码
# 将刚生成的密钥的公钥上传到服务器端上
scp -P2024 /c/Users/fangwei/.ssh/id_rsa.pub root@192.168.100.160:/tmp/
4.2 服务器端上的操作
# 创建git用户
useradd -m git
# 初始化gitosis
su - git
gitosis-init < /tmp/id_rsa.pub # 执行完后,出现以下两行信息表示初始化成功
已初始化空的 Git 仓库于 /home/git/repositories/gitosis-admin.git/
重新初始化已存在的 Git 仓库于 /home/git/repositories/gitosis-admin.git/
# 删除密钥
su - root
4.3 继续客户端开发机上操作
# 将服务端上的gitosis-admin.git 克隆到客户端开发机上【git bash here 工具上执行】
mkdir -p /repo # 实际上创建的目录存放在 Git 客户端安装目录下的【我这里是:D:\Git\installed\Git\repo】
# 克隆gitosis-admin.git仓库 目的是管理gitosis的配置文件,可以以管理员的身份修改配置</