【发布时间】:2012-06-20 18:50:21
【问题描述】:
假设我在错误的 TFS 分支中签入了更改。我需要将我的更改转移到另一个分支,然后以某种方式从错误的分支中消除这些更改。这可以在不借助选择性复制/粘贴的情况下完成吗?最终,我确实想要我错误地将它们添加到的分支中的更改......只是还没有。
如果我没有签入更改,我可以搁置它们,然后use tfpt to unshelve into a different branch。但这在这里行不通,因为我已经检查了更改。
例子:
我有一个包含 MAIN 和 DEVELOPMENT 分支的环境。我需要创建一个名为 Buzzsaw 的新模块。我有一个解决方案打开并破解我的更改。然后我检查他们。哎呀。我意识到我刚刚将我的模块签入了 MAIN,但它应该已经签入了 DEVELOPMENT。我可以回滚错误的变更集,但是我需要手动将我的更改应用到 DEVELOPMENT。大多数受影响的文件在分支之间是相同的,但有足够的差异,我宁愿不复制/粘贴我的更改。
我可以将我的更改从 MAIN 合并到 DEV,然后回滚 MAIN。但是,当我真的希望它们存在时,现在很难将更改带回 MAIN(现在将 DEV 合并到 MAIN 并不会移动该更改集,因为它已经被合并了)。
我能做什么?有没有一种相当干净的方法来完成这个?
【问题讨论】:
-
您确定:“现在将 DEV 合并到 MAIN 不会移动该变更集,因为它已经合并了”?
-
我可能做错了什么,但我几乎可以肯定。如果分支 I 上的文件 A 在变更集 1 中并且我合并,则分支 II 上的文件 A 在变更集 2 中。现在,如果我要求 TFS 将 II 合并到 I,则没有待处理的更改。即使我在 I 上提交 A' 作为变更集 3,将 II 合并到 I 也不会有待处理的变更集。
-
好的,但是如果您回滚 I 中的变更集 1,那么您仍然无法从 II 合并回 I 吗?
-
你是对的。我确信我过去曾尝试过,但我要么做错了,要么没有真正尝试过。谢谢!如果您稍微扩展您的评论作为答案,我会接受它。
-
:) 实际上我已经输入了答案,我只需要发布它。
标签: tfs