将 Git 存储库移动到另一个具有全保真历史记录的项目
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
如果计划将多个 Azure DevOps 项目合并为一个项目,你可能想知道:
- 如何处理所有存储库?
- 移动或合并它们?
- 保留历史记录还是保留部分存储库?
在本文中,你将了解如何将 Git 存储库移动到另一个具有完全保真历史记录的项目。
方案是什么?
如图所示,你需要将 MigrationDemo 存储库从 FabrikamOld 移动到新的 Fabrikam 团队项目。
如何实现移动?
你有两个选项,如下所述。 导入功能更简单,但仅在 Azure DevOps Services 和 TFS 2017 更新 1 及更高版本中可用。
使用“导入 Git 存储库”功能
通过使用“导入存储库”功能,可以将 Git 存储库从 Team Foundation Server (TFS)、Azure Repos 或任何其他 Git 源代码提供商(如 GitHub)导入团队项目。 有关详细信息,请查看导入存储库文档。
通过五个简单的步骤手动迁移 Git 存储库:
创建空 Git 存储库。
在代码资源管理器中,单击存储库名称。 从列表中选择“新建存储库”,选择 Git 作为类型,并为其命名。
创建存储库后,你将看到用于快速入门的分步说明。 将 Clone URL
复制到剪贴板。
重要
如果要从其他项目集合或外部 git 存储库导入,请清除“自动为提交注释中提到的工作项创建链接”。 否则,Azure DevOps 会将提交关联到团队项目集合中不相关团队项目的现有工作项。
镜像存储库
切换到开发人员命令提示和 FabrikamOld 中 MigrationDemo 存储库的本地(源)存储库路径。 使用上面的克隆 URL 运行 git clone --mirror
命令。
命令行:
git clone --mirror https://demo-fabrikam.visualstudio.com/DefaultCollection/Fabrikam/_git/MigrationDemo
如图所示,在本例中,clone --mirror
是冗余的,因为远程存储库是空的。 此处使用它作为一种安全、简单的方法来设置远程库。
推送存储库
运行 git push
命令,将本地更改推送到远程(目标)存储库。
--mirror
选项与 clone 和 push 命令一起使用。 该选项可确保所有分支和其他属性都被复制到新的存储库中。
验证新存储库
切换到 Azure DevOps Web 门户,并在 CODE 中心验证新存储库和历史记录。
验证所有分支是否都已移至新存储库。
配置新存储库
验证是否为新存储库正确配置了权限和策略。 可以在步骤 1 之后或在此阶段配置安全性。 重新配置生成以连接新存储库。 最后,通知原始存储库的用户在 Visual Studio 中更新其远程库或运行 git remote set-url origin
命令。
> git remote set-url origin https://demo-fabrikam.visualstudio.com/DefaultCollection/Fabrikam/_git/MigrationDemo
重要
请记住,通过删除存储库(小心,没有撤消)或锁定分支来清理原始项目,这样就不会有人不小心继续更新它。
有关规划团队项目集合和团队项目的详细信息,请参阅 TFS 规划、灾难避免和恢复以及 Azure IaaS 上的 TFS 指南。
作者:Jesse Houwing、Mike Fourie 和 Willy Schaub | 与作者和 ALM DevOps Rangers 联系
(c) 2016 Microsoft Corporation。 保留所有权利。 本文档“按原样”提供。本文档中表达的信息和观点(包括 URL 和其他 Internet 网站引用)如有更改,恕不另行通知。 您自行承担其使用风险。
本文档未向您提供任何 Microsoft 产品中任何知识产权的任何合法权利。 您可为了内部参考目的复制和使用本文档。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈