You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SSH将代码仓库导入Azure DevOps项目?

从禁用HTTPS的GitLab迁移项目到Azure DevOps的可行方案

方案一:Git镜像推送(高效迁移单个项目)

该方法可完整保留原仓库的提交历史、分支、标签,比手动复制内容更可靠:

  1. 通过SSH克隆GitLab仓库的完整镜像到本地:
    git clone --mirror git@your-gitlab-domain:group/project.git
    
    --mirror参数会克隆仓库所有分支、标签及元数据,是完整的镜像备份。
  2. 进入克隆的镜像仓库目录:
    cd project.git
    
  3. 添加Azure DevOps仓库作为远程地址(已配置SSH密钥,推荐使用SSH地址):
    git remote add azure git@ssh.dev.azure.com:v3/your-azure-org/your-project/your-repo
    
  4. 将所有内容推送到Azure DevOps:
    git push --mirror azure
    
    此命令会把原仓库的所有分支、标签完整同步到Azure,与原仓库完全一致。

方案二:批量迁移脚本(适配多项目场景)

若需迁移大量项目,可通过Shell脚本自动化处理:

  1. 准备一个记录所有GitLab项目SSH地址的文本文件projects.txt,每行一个地址:
    git@your-gitlab-domain:group/proj1.git
    git@your-gitlab-domain:group/proj2.git
    ...
    
  2. 编写迁移脚本migrate.sh(执行前需赋予权限:chmod +x migrate.sh):
    #!/bin/bash
    AZURE_ORG="your-azure-org"
    AZURE_PROJECT="your-azure-project"
    
    while read repo_url; do
        # 提取项目名称
        repo_name=$(basename "$repo_url" .git)
        # 克隆GitLab仓库镜像
        git clone --mirror "$repo_url"
        cd "$repo_name.git"
        # 添加Azure DevOps远程仓库地址
        git remote add azure "git@ssh.dev.azure.com:v3/$AZURE_ORG/$AZURE_PROJECT/$repo_name"
        # 推送完整镜像到Azure
        git push --mirror azure
        cd ..
        # 清理本地镜像文件(可选操作)
        rm -rf "$repo_name.git"
    done < projects.txt
    
    替换脚本中的AZURE_ORG和AZURE_PROJECT为你的Azure组织与项目名称,运行脚本即可自动批量完成迁移。

关于Azure DevOps导入功能的说明

Azure DevOps的「导入仓库」功能目前仅支持HTTPS格式的源地址,不支持直接通过SSH导入,因此你之前尝试填写SSH链接或构造无效HTTPS链接的操作无法成功,官方暂未提供该路径的支持。

内容的提问来源于stack exchange,提问作者Matt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 02:50:26