Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022
如果你计划将多个 Azure DevOps 项目合并为一个项目,可能想知道应该如何处理所有的存储库:
- 应该移动项目或合并项目吗?
- 应保留历史记录还是仅保留最新项目?
先决条件
| 类别 | 要求 |
|---|---|
| 项目访问权限 | 项目的成员。 |
| 权限 | - 查看私有项目中的代码:至少 基本 访问权限。 - 克隆或贡献代码到私有项目中:必须是“贡献者”安全组的成员或拥有项目中的相应权限。 - 设置分支或存储库权限: 管理权限 是分支或存储库的权限。 - 更改默认分支: 编辑策略 是存储库的权限。 - 导入存储库: 项目管理员 安全组的成员或 Git 项目级 “创建存储库 ”权限设置为 “允许”。 有关详细信息,请参阅 “设置 Git 存储库权限”。 |
| Services | 已启用存储库。 |
| 工具 | 可选。 使用 az repos 命令: Azure DevOps CLI。 |
注释
在公共项目中,具有 利益干系人 访问权限的用户具有对 Azure Repos 的完全访问权限,包括查看、克隆和参与代码。
方案是什么?
如图所示,需要将MigrationDemo存储库从FabrikamOld移动到Fabrikam新团队项目。
如何移动?
您可以选择两种移动方式,具体如下所述。 导入功能更简单,但它仅在 Azure DevOps Services 和 Team Foundation Server 2017 Update 1 及更高版本中可用。
使用导入 Git 存储库功能
使用导入存储库功能时,可以从 Team Foundation Server、Azure Repos 或任何其他 Git 源代码提供程序(如 GitHub)将 Git 存储库导入到团队项目。 有关详细信息,请参阅 将 Git 存储库导入到项目。
手动迁移 Git 存储库
创建空的 Git 存储库
从代码资源管理器中,选择存储库名称。 从列表中选择 “新建存储库 ”,选择 “Git ”作为类型,并为其命名。
创建存储库后,将显示分步说明来帮助你入门。 将克隆 URL 复制到剪贴板。
重要
如果计划从其他项目集合或外部 Git 存储库导入,请清除 提交注释选项中提到的工作项自动创建链接 。 否则,Azure DevOps 会将提交与团队项目集合中其他项目的现有工作项关联。
镜像存储库
切换到MigrationDemoFabrikamOld开发人员命令提示符,并导航到本地(源)存储库的路径。 使用克隆 URL 运行 git clone --mirror 命令。 命令行为 git clone --mirror https://demo-fabrikam.visualstudio.com/DefaultCollection/Fabrikam/_git/MigrationDemo.
在这种情况下,该 clone --mirror 命令是冗余的,因为远程存储库是裸露的。 这里用作设置遥控器的一种安全且便捷的方法。
推送存储库
git push运行以下命令,将本地更改推送到远程(目标)存储库。
该 --mirror 选项同时用于克隆和推送命令。 该选项可确保在新存储库中复制所有分支和其他属性。
验证新存储库
切换到 Azure DevOps Web 门户,并在 CODE 中心验证新的存储库和历史记录。
验证是否已将所有分支移到新存储库。
配置新存储库
验证是否已为新存储库正确配置权限和策略。 可以在创建空 Git 存储库或在此阶段后配置安全性。 重新配置构建以连接到新的存储库。 最后,通知原始存储库的用户,在 Visual Studio 中更新其远程设置,或者通过运行 git remote set-url origin 命令来完成更新。
> git remote set-url origin https://demo-fabrikam.visualstudio.com/DefaultCollection/Fabrikam/_git/MigrationDemo
重要
请记住,通过删除存储库(小心,没有撤消)或锁定分支来清理原始项目,以便没有人意外地更新它。
有关规划团队项目集合和团队项目的详细信息,请参阅 Azure IaaS 指南上的 TFS 规划、灾难恢复和恢复和 TFS。