我将更换工作公司,但我会继续从事相同的项目。我在 Azure DevOps 上有一些项目使用 Git,另一个项目使用 TFVC。我使用过这些集成在 Visual Studio 上的源代码控制工具,我从未使用过控制台命令。
我想将包含某些项目(不是所有项目)的所有更改的源代码从一个帐户“复制”到另一个帐户。如果可以将 TFVC 迁移到 Git。我该怎么做?
最佳答案
TFVC
众所周知,TFVC 很难从一台服务器迁移到另一台服务器。有一些工具可以提供帮助,但 TFVC->TFVC 很难做到正确。由于您可以在 TFVC 中做一些在 Git 中做不到的事情,因此并不总是可以继承**所有*历史和**所有*分支。不过,一般来说,转移具有一些历史记录的主分支就足够了。
幸运的是,有了这个警告,TFVC->Git 就容易多了。从您当前的 Azure DevOps 帐户中,选择“导入存储库”选项:
您可以指定要导入最多 180 天历史记录的单个分支。对于大多数项目来说,这已经足够了。使用此路线无法导入多个分支,因此您需要先将您的工作集成到一个分支中,以防您有正在进行的项目。
这会将您的 TFVC 分支转换为 Git 存储库。您可以根据需要从不同的 TFVC 存储库导入不同的分支多次执行此操作,直到您的所有工作都在 Git 中。
Git
有多种方法可以将 Git 存储库从一个系统移动到另一个系统,但由于您使用的是 Azure DevOps,您可以使用相同的导入存储库选项让 Azure Repos 将数据从旧帐户直接导入到新帐户一个。
首先,您需要创建一个新的目标帐户(或者使用您现有的个人帐户(如果有的话))。然后使用相同的导入存储库选项,但这次来自您的新帐户。
输入您要迁移的存储库的克隆 URL,并提供您的 Git 凭证或个人访问 token :
这会自动将您的所有代码、分支、标签等 pull 入您的目标帐户和新的 Git 存储库。执行此序列的次数与您拥有 Git 存储库的次数一样多。
命令行方式
您也可以使用命令行执行相同的步骤:
Git
要克隆 repo 以进行迁移,请使用新的克隆并指定 --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
关于git - 将一些项目从一个用户帐户移动到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54861859/