Git创建公共服务舱并自动同步到目标版本库

本文详细介绍如何从零开始搭建一个Git服务器,包括安装Git、创建专用用户、生成版本库、配置SSH密钥认证、实现自动同步等功能。适用于希望自主部署版本控制系统的企业和个人。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0.安装git
1.创建一个专门用于git服务的用户名,并要有密码,如起名:git
命令:useradd git
命令:passwd git
2.切换到该用户 命令:su git
3.找一个地方生成公共服务舱
命令:cd
命令:git init --bare 舱名.git
4.现在要准备收集SSH秘钥了,让所有要使用该舱 的用户远程克隆 该舱 要求他们生成秘钥:
命令:ssh-keygen -t rsa -C “验证用的邮箱"
收集各用户 id_rsa.pub 文件中的内容
5.创建 git服务控制中枢的秘钥集控制文件( 放置于git服务用户名下 ) 路径及文件:
用命令生成: /home/git服务的用户名/.ssh/authorized_keys
在 authorized_keys 文件中 填入收集到的 id_rsa.pub 文件中的内容(每个key新起一行)
更改 .ssh 文件夹权限,命令: chmod 700 .ssh
更改 authorized_keys 文件权限,命令: chmod 640 authorized_keys
检测 authorized_keys 文件是否生效:让所有用户
使用 命令:ssh 该舱服务用户名@服务机IP 测试,如果生效将显示地址
6.如果以上步骤成功,用户们克隆不再需要密码

7.现在配置对服务器中的目标版本库自动进行同步 先在目标目录克隆出一个该服务舱对应的版本库,
重复第4,5步,将对应SSH秘钥放入 authorized_keys 文件

现在回到服务舱内的 hooks 文件夹,复制 post-update.sample 文件为 post-update 文件:
命令:cp post-update.sample post-update
vim打开 post-update ,保留第一行shell执行识别码,其他全部删除,写入以下操作命令

cd /目标目录版本库对应位置/
unset GIT_DIR
git checkout master
git pull

10.现在可以测试同步功能了
11.如果测试成功,可以考虑禁用该舱服务的用户名的除git-shell外的权限:
命令:vim /etc/passwd
git:x:1001:1001:,,,:/home/git:/bin/bash
改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值