#!/bin/bash
# 仓库迁移脚本
# 从 https://aaaa.git 迁移到 https://bbbb.git
set -e # 遇到错误时退出
# 源仓库地址和认证信息
SOURCE_USER="u1"
SOURCE_PASS="p1"
SOURCE_REPO="https://${SOURCE_USER}:${SOURCE_PASS}@gaaaa.git"
# 目标仓库地址和认证信息
TARGET_USER="u2"
TARGET_PASS="p2"
TARGET_REPO="https://${TARGET_USER}:${TARGET_PASS}@bbbb.git"
echo "开始仓库迁移..."
echo "⚠️ 注意:此脚本包含用户名和密码,请确保在安全环境中运行"
echo "源仓库用户: $SOURCE_USER"
echo "目标仓库用户: $TARGET_USER"
echo ""
# 临时目录名
TEMP_DIR="temp-migration"
echo "步骤 1: 克隆源仓库..."
if [ -d "$TEMP_DIR" ]; then
echo "删除已存在的临时目录..."
rm -rf "$TEMP_DIR"
fi
git clone --mirror "$SOURCE_REPO" "$TEMP_DIR"
cd "$TEMP_DIR"
echo "步骤 2: 添加目标仓库作为新的远程仓库..."
git remote set-url origin "$TARGET_REPO"
echo "步骤 3: 推送所有分支和标签到新仓库..."
echo "推送所有分支和标签..."
git push --mirror origin
echo "步骤 4: 清理临时文件..."
cd ..
rm -rf "$TEMP_DIR"
echo "✅ 仓库迁移完成!"
echo "源仓库: https://aaaa.git"
echo "目标仓库: https://bbbb.git"
echo ""
echo "您现在可以:"
echo "1. 访问新仓库验证迁移结果"
echo "2. 在新仓库中设置分支保护规则"
echo "3. 更新本地开发环境的远程仓库地址"
echo "4. 删除此脚本文件以保护敏感信息"