我将更换公司,但我将继续从事相同的项目。我在Git上的Azure DevOps上有一些项目,而在TFVC上有另一个项目。我曾经使用过Visual Studio中集成的这些源代码控制工具,却从未使用过控制台命令。
我想将某些项目(不是所有项目)的所有更改从一个帐户“复制”到另一个帐户的源代码。如果有可能将TFVC迁移到Git。我该怎么办?
答案 0 :(得分:3)
众所周知,TFVC很难从一台服务器迁移到另一台服务器。有一些工具可以提供帮助,但是TFVC-> TFVC很难做到正确。由于您可以在TFVC中完成Git不可能完成的工作,因此并非总是可以保留所有历史记录和所有分支。不过,总的来说,转移具有某些历史记录的主分支就足够了。
幸运的是,有了TFVC-> Git,要容易得多。从当前的Azure DevOps帐户中,选择“导入存储库”选项:
您可以指定一个要导入的分支,最多可以包含180天的历史记录。对于大多数项目而言,这已经足够了。使用此路由无法导入多个分支,因此,如果有正在进行的项目,则需要首先将工作集成到单个分支中。
这会将您的TFVC分支转换为Git存储库。您可以多次执行此操作,直到从GTF中导入不同的分支和不同的TFVC存储库。
有多种方法可以将Git存储库从一个系统移动到另一个系统,但是由于使用的是Azure DevOps,因此可以使用相同的Import Repository选项,使Azure Repos将数据从旧帐户直接导入到新帐户中一个。
首先,您需要创建一个新的目标帐户(如果有,请使用现有的个人帐户)。然后使用相同的“导入存储库”选项,但是这次是从您的新帐户中进行的。
输入要移至的存储库的克隆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分支导入具有可选历史记录的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
答案 1 :(得分:1)
首先,使用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