当前位置: 首页 > news >正文

2030. gitLab A仓同步到B仓

文章目录

  • 1 A 仓库备份 到 B 仓库
  • 2 B 仓库修改main分支的权限

1 A 仓库备份 到 B 仓库

#!/bin/bash# 定义变量
REPO_DIR="/home/xhome/opt/git_sync/zz_xx_xx"  # 替换为你的本地库A的实际路径
REMOTE_ORIGIN="http://192.168.1.66:8181/zzkj_software/zz_xx_xx.git"        # 库A的URL
REMOTE_BACKUP="http://192.168.1.67:8181/zzkj_software/zz_xx_xx.git"  # 库B的URL
BRANCH_NAME="main"  # 分支名称# 进入仓库目录
cd "$REPO_DIR" || exit# 检查是否有新的提交到 REMOTE_BACKUP
echo "Checking for new commits on REMOTE_BACKUP..."
git fetch "$REMOTE_BACKUP" "$BRANCH_NAME"
if [ $(git rev-list --count HEAD...FETCH_HEAD) -gt 0 ]; thenecho "WARNING: There are new commits on REMOTE_BACKUP. These will be overwritten."read -p "Do you want to continue and force push? (y/n): " choiceif [ "$choice" != "y" ]; thenecho "Aborting."exit 1fi
fi# 获取最新的远程信息,并记录远程分支的最新提交哈希值
echo "Fetching the latest changes from REMOTE_BACKUP..."
git fetch "$REMOTE_BACKUP" "$BRANCH_NAME"
REMOTE_BRANCH_HASH=$(git rev-parse FETCH_HEAD)# 强制推送更新到远程备份库,使用 --force-with-lease 并指定预期的远程分支哈希值
echo "Pushing updates to REMOTE_BACKUP with --force-with-lease..."
if ! git push --force-with-lease="refs/heads/$BRANCH_NAME:$REMOTE_BRANCH_HASH" "$REMOTE_BACKUP" "$BRANCH_NAME"; thenecho "Failed to push updates to REMOTE_BACKUP. Please check your repository state."exit 1
fi# 强制推送所有标签到远程备份库
echo "Pushing tags to REMOTE_BACKUP..."
if ! git push "$REMOTE_BACKUP" --tags; thenecho "Failed to push tags to REMOTE_BACKUP. Please check your repository state."exit 1
fi# 可选:清理本地不再需要的远程跟踪分支和标签
# git remote prune backupecho "Synchronization completed successfully."

2 B 仓库修改main分支的权限

  • main 分支允许强制推送即可.
    在这里插入图片描述
http://www.lryc.cn/news/498565.html

相关文章:

  • 网易博客旧文-----如何在WINDOWS下载安卓(android)源代码并和eclipse做关联
  • MATLAB中axes函数用法
  • 构建 Java Web 应用程序:实现简单的增删查改(Mysql)
  • 3d行政区划-中国地图
  • 适合存储时序数据的数据库和存储系统
  • dolphinscheduler集群服务一键安装启动实现流程剖析
  • 深入了解Linux —— 学会使用vim编辑器
  • C05S01-Web基础和HTTP协议
  • MIT工具课第六课任务 Git基础练习题
  • 计算机网络安全
  • Delphi 实现键盘模拟、锁定键盘,锁定鼠标等操作
  • RTK数据的采集方法
  • Next.js 入门学习
  • 2024年认证杯SPSSPRO杯数学建模B题(第一阶段)神经外科手术的定位与导航解题全过程文档及程序
  • 安卓底层相机流的传输方式
  • 【单链表】(更新中...)
  • 开源堡垒机JumpServer配置教程:使用步骤与配置
  • 上门服务小程序开发,打造便捷生活新体验
  • iOS中的类型推断及其在Swift编程语言中的作用和优势
  • 工业检测基础-缺陷形态和相机光源选型
  • Python100道练习题
  • 2024年华中杯数学建模A题太阳能路灯光伏板的朝向设计问题解题全过程文档及程序
  • 【JavaWeb后端学习笔记】Java上传文件到阿里云对象存储服务
  • 网盘管理系统
  • learn-(Uni-app)跨平台应用的框架
  • 趋同进化与趋异进化的区别及分析方法-随笔03
  • 2024年华中杯数学建模B题使用行车轨迹估计交通信号灯周期问题解题全过程文档及程序
  • 高效查找秘密武器一:位图
  • 自回归模型(AR )
  • Linux内核 -- Linux驱动从设备树dts文件中读取字符串信息的方法