在Visual Studio的TFVC中,不提交父分支QA时合并dev1至dev2的最优方案
针对TFVC分支变更迁移问题的解决方案
不用提交QA再回滚,搁置集(Shelve)是最优方案
这是最贴合你场景的做法,完全不用碰QA分支的未提交内容:
- 在dev1分支里,只选中你要迁移的目标项目的变更,创建搁置集(记得别勾选"搁置后撤销本地变更",保留自己的本地修改)
- 切到dev2分支,找到这个搁置集,执行取消搁置操作,过程中可以精准选择只恢复该项目的变更,遇到冲突直接在向导里解决就行
- 确认dev2上的变更没问题后,正常提交dev2的变更即可
提交QA再回滚绝非最佳实践
这种做法弊端太多:
- 会在QA分支的提交历史里留下无意义的提交记录,后期查历史会很混乱
- 回滚操作如果没处理好,很容易弄丢QA分支上其他未提交的变更(比如其他同事的本地修改)
- 流程绕来绕去,额外增加回滚、验证的工作量,效率极低
Git可以轻松实现这个需求
Git的分支模型天生更灵活,有几种方式可选:
- cherry-pick:如果dev1的变更已经提交,直接把对应项目的提交记录挑出来,应用到dev2上
- stash 定向暂存:如果还没提交,用
git stash push -- <你的目标项目路径>只暂存特定项目的变更,切到dev2后用git stash pop恢复,验证后提交 - 临时分支迁移:从dev1基于目标变更建个临时分支,把这个临时分支合并到dev2,完事删掉临时分支就行
内容的提问来源于stack exchange,提问作者Emmanuel Gleizer
相关产品推荐
相关产品推荐

