You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

迁移TFS到Git时,如何用git-tf/git tfs获取搁置集并转存为Git Stash?

我之前在做TFS到Git迁移后,也碰到过搁置集处理的问题,整理了几个实用的方法,应该能帮到你:

处理TFS搁置集的可行方案

1. 获取TFS个人搁置集到本地

你已经能用git tfs shelve-list -u=MyUserName列出远程的个人搁置集,接下来要把指定搁置集拉到本地并应用,用git tfs unshelve命令就可以:

  • 先切换到你想要应用变更的Git本地分支(比如当前工作分支)
  • 执行命令:git tfs unshelve <你的搁置集名称> -u=MyUserName
    这个命令会把TFS搁置集里的变更直接应用到你的本地工作区,同时会自动创建一个临时Git提交(你可以根据需求选择保留这个提交,或者调整后重新提交)
  • 如果只想预览搁置集里的变更内容、不想实际应用,加上--preview参数即可:git tfs unshelve <你的搁置集名称> -u=MyUserName --preview

2. 将TFS搁置集转换为Git Stash

git tfs没有直接把搁置集转成Git stash的原生命令,但可以通过两步间接实现:

  1. 按照上面的方法,用git tfs unshelve把搁置集变更应用到本地工作区(注意不要提交变更)
  2. 执行git stash push -m "原TFS搁置集:<你的搁置集名称>",这样就把当前工作区的变更存成Git stash了
  3. 之后需要恢复这个stash时,用git stash apply stash@{0}(或者对应stash的编号,用git stash list可以查看所有stash)

3. 用git-tf获取TFS搁置集到本地

如果你更倾向于用git-tf工具,流程和git tfs类似:

  • 先确保git-tf已经和目标TFS仓库建立好关联
  • 列出个人搁置集:git tf shelve list -u MyUserName
  • 获取并应用指定搁置集:git tf shelve unshelve <你的搁置集名称> -u MyUserName
  • 转成Git stash的方法和上面一样:先应用到工作区,再用git stash命令保存

几个额外注意点

  • 操作前记得确保本地Git仓库和远程TFS的连接正常,可通过git tfs fetch或git tf fetch同步最新信息
  • 如果搁置集和本地现有代码有冲突,工具会提示你解决冲突,处理方式和Git常规冲突解决一致
  • 如果需要批量处理多个搁置集,可以写个简单的脚本,遍历shelve-list的输出结果,自动执行unshelve和stash操作

内容的提问来源于stack exchange,提问作者Lavakusa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 03:49:32