使用Git-tfs迁移老旧TFS仓库:仅迁主分支及维护分支可行吗?
完全可行,这类场景已经有很多成功实践
- 优先迁移主分支:用Git-TFS或者Azure DevOps迁移工具时,直接指定只同步主分支的历史。比如用Git-TFS的话,执行
git tfs clone --branches=main <你的TFS仓库地址>,跳过其他分支就能避开分支重命名、结构混乱带来的循环问题。 - 按需清理主分支历史:如果主分支历史里夹杂着和旧分支相关的混乱提交,可借助
git filter-repo或者交互式rebase清理掉无关节点,保证迁移后的主分支历史清晰。 - 分步迁移维护分支:主分支搞定后,再单独处理仍在维护的分支。同步时要基于已经迁移完成的主分支历史,比如用
git tfs fetch --branch=<要迁移的维护分支名>,然后把拉取到的分支推送到目标Git仓库的对应分支。要是分支有重命名记录,迁移时得指定新旧名称的映射,避免冲突报错。 - 解决迁移循环小技巧:如果迁移特定分支时还是碰到循环错误,检查下分支的父节点关联,手动调整分支的起点,让它基于已迁移的主分支提交,而不是指向那些没迁移的旧分支节点。
内容的提问来源于stack exchange,提问作者advapi
相关产品推荐
相关产品推荐

