git仓库迁移
迁移步骤
准备好所有需要迁移的仓库地址
具体需要人为统计,在新的Target上创建对应的仓库,并记录好地址。
编写迁移脚本
已经准备好脚本,仅供参考。
#!/bin/bash
set -x
# 获取参数
SOURCE_REPO_URL=$1
TARGET_REPO_URL=$2
SOURCE_USERNAME=$3
SOURCE_PASSWORD=$4
# 检查是否设置了 Target 的用户名和密码环境变量
TARGET_USERNAME=用户名
TARGET_PASSWORD=密码
# 克隆 Gogs 仓库,包括所有分支
TEMP_CLONE_DIR=$(mktemp -d)
# 进入克隆的仓库目录
cd "$TEMP_CLONE_DIR" || exit
echo "Cloning repository from Gogs..."
git clone --mirror "$SOURCE_REPO_URL" "$TEMP_CLONE_DIR"
# 设置 Target 远程仓库地址
echo "Setting Target remote..."
git remote set-url origin "https://$TARGET_USERNAME:$TARGET_PASSWORD@$(echo "$TARGET_REPO_URL" | sed 's|^https://||')"
# 推送镜像到 Target(强制覆盖)
echo "Pushing to Target..."
git push -f --mirror "https://$TARGET_USERNAME:$TARGET_PASSWORD@$(echo "$TARGET_REPO_URL" | sed 's|^https://||')"
echo "Repository successfully pushed to Target."
执行迁移脚本
chmod +x 迁移脚本.sh
./迁移脚本.sh 源仓库地址 目标仓库地址 源用户名 源密码
评论区