如何在Visual Studio 2022中通过TFS跨分支迁移搁置集
搁置集跨分支迁移解决方案(无需重做/TFPT)
方法一:Visual Studio内置操作+手动变更迁移
- 确保本地工作区已映射目标分支到本地目录(若未映射,在团队资源管理器的「工作区设置」中添加对应映射)
- 获取目标分支的最新版本:右键目标分支 → 获取最新版本
- 解挂源分支的搁置集:在团队资源管理器的「搁置集」中找到目标搁置集,右键选择「解挂」,此时变更会应用到源分支本地
- 移动变更到目标分支:在「挂起的变更」面板中,选中所有解挂的文件/变更,右键选择**「移动」**,选择目标分支对应的本地路径作为目标位置
- 验证变更归属:此时所有变更会自动关联到目标分支,检查「挂起的变更」中的「分支」列,确认已切换到目标分支
- 撤销源分支的挂起变更:若源分支还有残留的挂起变更,选中后右键选择「撤销变更」
- 提交目标分支的变更:确认无误后,提交目标分支的挂起变更即可
方法二:TFS命令行手动迁移
- 添加目标分支的工作区映射(若未存在):
tf workfold /map "$/TeamProject/TargetBranch" "C:\YourWorkspace\Target" - 获取目标分支最新版本:
tf get "$/TeamProject/TargetBranch" /recursive /force - 解挂搁置集到源分支本地:
tf unshelve "ShelvesetName;YourUserName" /noprompt - 将所有挂起变更移动到目标分支路径:
tf move "C:\YourWorkspace\Source\*" "C:\YourWorkspace\Target\" /recursive - 撤销源分支的残留挂起变更:
tf undo "$/TeamProject/SourceBranch" /recursive - 提交目标分支的变更:
tf checkin /comment:"Migrated shelveset from SourceBranch to TargetBranch"
方法三:利用TFS分支合并临时过渡
- 在服务器上,从源分支创建一个临时分支(仅用于迁移)
- 解挂搁置集到临时分支并提交变更
- 将临时分支的变更合并到目标分支
- 合并完成后删除临时分支
内容的提问来源于stack exchange,提问作者Baiju Chandran
相关产品推荐
相关产品推荐

