将一些项目从一个用户帐户移动到另一个

Move some projects from a user account to another

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

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

首先,使用git-tfs工具将TFVC代码迁移到Git。

当您的所有代码都在 Git 中时,您可以轻松地将代码移动到另一个项目:

1) 将存储库克隆到本地文件夹。

2) 转到 TFS/Azure DevOps 并创建一个新的 Git 存储库。

3) 将本地仓库推送到 TFS/Azure DevOps 仓库。

最好的方法是使用命令行:

1) git clone old-repo-url

2) 从 TFS/Azure DevOps 门户创建新的存储库。

3) git remote add origin new-repo-url

git push -u origin --all

TFVC

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

有了这个警告,幸运的是,TFVC->Git 要容易得多。从您当前的 Azure DevOps 帐户中,选择“导入存储库”选项:

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

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

Git

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

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

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

这会自动将您的所有代码、分支、标签等拉入您的目标帐户和新的 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