Git 不同主体的两个仓库同步代码,仓库A1同步代码到仓库A2

发布时间 2023-06-28 12:32:25作者: 一只桔子2233

0、参考

gitee生成、添加 SSH 公钥
Cron表达式在线工具

1、操作

1.1 名词解释

服务器F1 源服务器,设置定时任务,同步仓库A1到仓库A2
服务器F2 目标服务器,需要git拉取最新代码,并更新部署
仓库A1 源仓库,属于成员的,没有管理员权限,从这个仓库拉取代码
仓库A2 目标仓库,有管理员权限,把代码同步到这个仓库,用于设置仓库部署公钥

1.2 账户公钥

在服务器F1,生成ssh公钥
ssh-keygen -t ed25519 -C "Gitee SSH Key F1"
把公钥添加到 [账户公钥]

1.3 同步仓库A1到仓库A2

cd /root/zzz/yy2/
rm -rf xxxxx2-admin.git/
git clone --bare git@gitee.com:kkkkkkk/xxxxx2-admin.git
cd xxxxx2-admin.git/
git push --mirror git@gitee.com:mmmmmm/xxxxx2-admin.git

1.4 仓库部署公钥

在服务器F2,生成ssh公钥
ssh-keygen -t ed25519 -C "Gitee SSH Key F2"
把公钥添加到 仓库A2[部署公钥]

1.4 仓库A2拉取代码

git clone -b ttt1.0 git@gitee.com:mmmmmm/xxxxx2-admin.git
git remote show origin
git branch

1.5 设置定时任务 同步仓库A1到仓库A2

*/2 9-19 * * * cd /root/zzz/yy2/ && /usr/bin/sh a_admin_auto_git.sh
*/30 0-9 * * * cd /root/zzz/yy2/ && /usr/bin/sh a_admin_auto_git.sh
*/30 19-23 * * * cd /root/zzz/yy2/ && /usr/bin/sh a_admin_auto_git.sh

1.6 定时任务脚本

#!/bin/bash

cd /root/zzz/yy2/
rm -rf xxxxx2-admin.git/
git clone --bare git@gitee.com:kkkkkkk/xxxxx2-admin.git
cd xxxxx2-admin.git/
git push --mirror git@gitee.com:mmmmmm/xxxxx2-admin.git