【问题标题】:How do I move an Azure DevOps project to a different organization?如何将 Azure DevOps 项目移至其他组织?
【发布时间】:2026-01-12 09:25:02
【问题描述】:

我在一个组织(来自 VSTS)中有一个项目,我想转移到我的新组织。

我在 Azure DevOps 中看不到任何关于迁移项目的选项,也看不到互联网上的任何信息。

有人知道怎么做吗?

【问题讨论】:

  • 如果您使用 AzureAD 来管理您的组织,那么您可以关注this
  • 请更改接受的解决方案,@martin 答案是最准确的方法

标签: azure-devops


【解决方案1】:

如果你只需要移动repos,你可以使用内置的克隆功能:

  1. 转到 Azure Devops 源代码库 -> 文件
  2. 点击“克隆”
  3. 选择“生成 Git 凭据”

  1. 在目标 Azure DevOps 中创建目标存储库
  2. 选择“导入存储库”
  3. 使用 步骤 3 中的 URL 和凭据

  1. 完成

【讨论】:

  • 6.5 将任何本地存储库的远程存储库更改为新存储库。您可以使用git remote set-url origin https://XXXXX@dev.azure.com/XXXXXX/XXXXX/_git/XXXXXX(https 路径为克隆 url),或手动编辑配置文件并更改远程。使用git remote -v 验证一切正常。
  • 这应该是公认的答案,我做到了并且工作完美
  • 我这样做了,但它给了我一个错误,指出由于以下原因之一无法处理导入请求: 1. 克隆 URL 不正确。 2.克隆网址需要授权。我的凭据是正确的,所以它似乎不接受 URL
  • 好的,我刚刚意识到它有效。与我之前的消息的不同之处在于,现在在我的源存储库中,我单击了“生成凭据”,并且在导入时我在目标用户名和密码字段中传递了这些凭据,并且它起作用了!!之前我试图输入我的登录凭据我用于我的源组织。
  • 此答案仅涵盖如何从 GIT 迁移存储库。从项目中迁移项目管理组件等...怎么样?
【解决方案2】:

今天不支持此功能。但是这个功能是计划开发的:make it possible to move a Team Project between Team Project Collections

【讨论】:

  • 由于这不是一个实际的解决方案,我认为它不应该是公认的答案。
  • @CodeGrue 这可能不是一个解决方案,但它确实回答了这个问题。虽然有些人可能会发现其他解决方案足以满足他们的需求,但现实情况是,对于大多数人来说,这是正确的答案:Microsoft 只是不支持它(但是,如果有的话)。它让我清楚地知道我没有忽略某些东西。
【解决方案3】:

如果您的 Azure Devops 项目仅使用单个 Git 存储库跟踪代码版本,因此没有板、用户故事、任务、管道等,那么您可以执行以下操作:

  1. 克隆您的项目存储库。
    • 例如使用 Visual Studio。
    • 如果您已经有本地存储库,则无需克隆。
  2. 破坏与遥控器的关联。
    • 为此,通常需要在包含.git 数据库文件夹的文件夹中打开命令行提示符,很可能是Visual Studio 的解决方案文件夹,然后键入git remote rm origin
    • 这是一个使用 git bash 显示解决方案文件夹内容的示例,包括 .git 数据库和 *.sln Visual Studio 解决方案文件:
  3. 如果尚未完成,请使用 Visual Studio 打开解决方案。
    • 现在应该显示您有许多提交等待推送到远程。出于说明目的,我的玩具项目总共只有 8 次提交。
  4. 单击向上箭头并选择您的新远程,例如一个全新的 Azure DevOps 项目,在您选择的组织中,然后推送。
  5. 您现在已完成在另一个组织中克隆项目。如果需要,则销毁旧组织中的项目以完成“移动”操作。

【讨论】:

  • 这会保留历史吗?
  • @JoshuaDrake 是的,绝对是。
  • 我需要一个解决方案来移动所有拉取请求和问题以及诸如 npm 注册表之类的工件
【解决方案4】:

扩展其他人的答案,这篇文章是关于管道的。

Azure DevOps API

跨组织迁移项目的几乎所有方面是可行的,但使用 Azure DevOps API 需要大量手动工作。下面的链接向您展示了所有端点、变量等。从那里您可能想要编写一个 Power Shell 脚本并对一个虚拟组织进行几次测试。

https://docs.microsoft.com/en-us/rest/api/azure/devops/?view=azure-devops-rest-6.1&viewFallbackFrom=azure-devops-rest-6.0

应用内选项

如果您避免使用 API,则无法迁移保留构建或发布历史记录的管道,但您可以通过进入管道并选择查看 YAML 来保留您的配置和流程。从这里您可以将其作为注释带走,以在您的新组织/项目位置重新创建 GUI 步骤,或者在您的 git 存储库中实际采用 YAML 标准。

我认为没有办法将管道变量迁移到 API 之外。但是,你可以将变量移动到 Azure Key Vault 并将管道设置 (YAML) 更改为引用来自 Key Vault 的值。这不是很大的努力,是一个很好的流程改进。

最后,如果您有任何本地安装的用于发布的管道代理,您将需要在盒子上为您的新组织运行 Power Shell 脚本。非常简单的 5m 步,但目前代理池不能跨组织共享。

【讨论】:

    【解决方案5】:

    据我所知,有 3 个项目可以实现这一目标。

    Ops Hub 的付费选项 - OpsHub Visual Studio Migration Utility

    需要更改工作项流程模板的开源工具 - Azure DevOps Migration tools

    最后一个非官方但仍由 Microsoft 编写的用于创建 Azure DevOps 项目模板的工具 - Azure DevOps Demo Generator & extractor tool

    使用最后一个(演示生成器)将项目提取为模板,然后将其应用于新组织。由于它是用于演示的工具,因此不提供任何支持,根据我的经验,它适用于简单的项目,但在任何复杂的项目上都会失败。

    【讨论】:

      【解决方案6】:

      正如@Frederic 在他的回答中提到的,我们实际上可以使用 Visual Studio 轻松完成。我在没有 Visual Studio 的情况下完成了这项工作。涉及的步骤如下。

      1. 向两个组织添加用户
      2. 配置 SSH 密钥
      3. 更新源 DevOps 中的 SSH 密钥并克隆存储库
      4. 查看所有分支和标签
      5. 在目标 DevOps 中更新 SSH 密钥
      6. 删除旧的并添加新的来源
      7. 推所有分支

      命令和详细解释可以在here找到。

      【讨论】:

      • 这将移动代码,但不会移动 DevOps 项目。
      最近更新 更多