一、信任关系建立

1、需要建立本地到腾讯coding的git@的信任关系

2、需要建立本地到本地自建gitlab的git@的信任关系

二、准备脚本(支持增量(新增/删除)变更)

[root@ecs-gitlab Android]# cat  Android.sh 
#!/bin/bash

# 读取仓库映射关系
while read -r REPO_URL_CODING REPO_URL_GITLAB
do
    # 提取仓库名作为目录名
    REPO_NAME=$(basename "$REPO_URL_CODING")

    # 如果目录不存在,首次克隆为镜像仓库
    if [ ! -d "$REPO_NAME" ]; then
        echo "首次克隆仓库: $REPO_URL_CODING"
        git clone --mirror "$REPO_URL_CODING" "$REPO_NAME"
        cd "$REPO_NAME" || continue
        git remote set-url --push origin "$REPO_URL_GITLAB"
    else
        echo "更新已有镜像仓库: $REPO_NAME"
        cd "$REPO_NAME" || continue
        git fetch --prune
    fi

    # 推送所有更新到 GitLab(只推送变化的部分)
    echo "推送更新到 GitLab: $REPO_URL_GITLAB"
    git push --mirror

    cd ..
done < Android_list


[root@ecs-gitlab Android]# cat Android_list 
git@e.wanyanzhenjiang.net:dbbjt/dbblive/base_libs.git	git@gitlab.wanyanzhenjiang.com:dbbjt/dbblive/base_libs.git

三、操作建议

第一次是全量的导出和导入,后续源有更新可以执行增量,一旦迁移完成之后就不要再执行了,会误删gitlab里的更新

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐