TFS 2017中VSTS版本控制仓库迁移至Git的方法咨询
TFS 2017 中从 TFVC 迁移到 Git 实操方案
刚接触TFVC转Git的话不用慌,针对你这种带嵌套解决方案和大量依赖的大型项目,在TFS 2017环境内完全可以平稳迁移,我给你梳理几个靠谱的实操步骤:
一、先做好前期准备,避免踩坑
- 备份优先:先在TFS里给整个TFVC仓库做个备份或者快照,毕竟是大型项目,万一迁移出问题还能回滚。
- 清理仓库冗余:把TFVC里不必要的文件(比如本地生成的
bin/obj文件夹、临时日志、测试用的垃圾文件)删掉并签入,这样迁移后的Git仓库更干净,体积也更小。要是这些文件之前被误提交了,一定要先处理掉。 - 理清楚嵌套结构:把主.sln和子.sln的依赖关系、文件路径先梳理一遍,确保迁移后项目的引用路径不会出错——Git和TFVC的路径逻辑是一致的,但提前心里有数能少走弯路。
二、用TFS自带的迁移工具(新手首选)
TFS 2017自带了TFVC转Git的可视化迁移工具,操作简单,不用敲命令:
- 打开TFS Web界面,找到你的TFVC仓库,右上角有个「迁移到Git」的选项(要是找不到,去项目设置里确认Git功能已经启用)。
- 跟着向导走就行:
- 选择要迁移的TFVC项目、分支或者特定文件夹;
- 设置目标Git仓库的名称和存放位置(必须在同一个TFS 2017环境里);
- 配置迁移选项:一定要勾选保留历史记录,还可以设置排除刚才清理的那些冗余文件/文件夹。
- 耐心等迁移完成:大型项目可能要花点时间,TFS会自动把TFVC的提交历史、分支、标签转换成Git对应的结构,省心不少。
三、命令行迁移(适合需要精细控制的场景)
如果你想对迁移过程有更多掌控,比如自定义历史过滤、分支映射,可以用git-tfs工具:
- 本地安装好Git和
git-tfs,然后配置好TFS的访问权限,确保能拉取TFVC的代码。 - 把TFVC仓库克隆到本地,同时迁移所有分支:
git tfs clone http://你的TFS服务器地址:8080/tfs/集合名 $/TFVC项目路径 --branches=all - 调整嵌套解决方案的引用路径:如果之前子.sln是用TFVC的服务器路径引用的,改成相对路径(比如
../子解决方案/子解决方案.sln),确保本地能正常加载。 - 在TFS 2017里新建一个空的Git仓库,拿到仓库的URL。
- 把本地转换好的Git仓库推到TFS的Git仓库:
git remote add origin http://你的TFS服务器地址:8080/tfs/集合名/_git/目标仓库名 git push -u origin --all git push -u origin --tags
四、嵌套解决方案和依赖项的特殊处理
- 嵌套解决方案:迁移完成后,先打开主.sln文件,逐个检查子.sln的引用路径是否正确。要是路径不对,修改成Git仓库内的相对路径,然后提交到Git就行。
- 项目依赖:如果依赖项是在同一个TFVC仓库里的,迁移后它们会在Git仓库的对应路径下,只要项目的引用指向正确的相对路径就没问题。如果是NuGet包这类外部依赖,只要
packages.config或者PackageReference配置正确,Git会跟踪这些配置文件,拉取代码后就能正常还原依赖。
五、迁移后一定要验证
- 把新的Git仓库拉到一个全新的本地目录,检查所有文件是否完整,嵌套解决方案能不能正常打开、编译。
- 查看Git的提交历史,确认TFVC的历史记录有没有正确迁移(包括提交信息、作者、时间这些细节)。
- 测试一下分支合并、打标签这些操作,确保Git的功能符合你的预期。
内容的提问来源于stack exchange,提问作者Heena Patel
相关产品推荐
相关产品推荐

