首页 > 解决方案 > 将一些项目从用户帐户移动到另一个用户帐户

问题描述

我将改变我的工作公司,但我将继续从事相同的项目。我有一些使用 Git 的 Azure DevOps 项目和另一个使用 TFVC 的项目。我使用过集成在 Visual Studio 上的这些源代码控制工具,我从未使用过控制台命令。

我想将源代码与某些项目(不是所有项目)的所有更改从一个帐户“复制”到另一个帐户。如果可以将 TFVC 迁移到 Git。我该怎么做?

标签: gittfsazure-devopsmigrationtfvc

解决方案


TFVC

众所周知,TFVC 很难从一台服务器迁移到另一台服务器。有一些工具可以提供帮助,但是 TFVC->TFVC 很难做到正确。由于您可以在 TFVC 中完成在 Git 中无法完成的事情,因此并不总是可以继承 **all* 历史记录和 **all* 分支。不过,总的来说,转移具有一些历史记录的主分支就足够了。

幸运的是,有了这个警告,TFVC->Git 就容易多了。从您当前的 Azure DevOps 帐户中,选择 Import Repository 选项:

在此处输入图像描述

您可以指定要导入最多 180 天历史的单个分支。对于大多数项目来说,这绰绰有余。使用此路线无法导入多个分支,因此您需要先将您的工作集成到一个分支中,以防您有正在进行的项目。

在此处输入图像描述

这会将您的 TFVC 分支转换为 Git 存储库。您可以根据需要多次执行此操作,从不同的 TFVC 存储库导入不同的分支,直到您的所有工作都在 Git 中。

吉特

有多种方法可以将 Git 存储库从一个系统移动到另一个系统,但由于您使用的是 Azure DevOps,因此可以使用相同的 Import Repository 选项让 Azure Repos 将旧帐户中的数据直接导入新帐户。

首先,您需要创建一个新的目标帐户(或使用现有的个人帐户,如果有的话)。然后使用相同的 Import Repository 选项,但这次来自您的新帐户。

在此处输入图像描述

输入您要移动的存储库的克隆 URL,并提供您的 Git 凭据或个人访问令牌:

在此处输入图像描述

这将自动将您的所有代码、分支、标签等拉入您的目标帐户和新的 Git 存储库。执行此序列的次数与您拥有 Git 存储库的次数一样多。


命令行方式

您还可以使用命令行执行相同的步骤:

吉特

要克隆用于迁移的存储库,请使用新克隆并指定--mirror选项:

git clone https://dev.azure.com/{Org}/{Project}/_git/{Repo} --mirror

然后将所有内容推送到新帐户上的一个新的、空的 git 存储库中:

git push --mirror https://dev.azure.com/{NewOrg}/{NewProject}/_git/{NewRepo}

TFVC

对于 TFVC,您有工具可以将 TFVC 分支导入具有可选历史记录的 git 存储库。git tfs允许您执行这样的导出:

git tfs clone http://your-tfs-server:8080/tfs/your-collection $/your-tfvc-repo

此过程将需要一些时间将您的变更集导入本地 git 存储库。之后,您可以将生成的 Git 存储库推送到新的目标 Azure DevOps 项目中:

git remote add target https://dev.azure.com/{NewOrg}/{NewProject}/_git/{NewRepo}
git push --all target

推荐阅读