我正在使用TFS来源控制我的c#ASP.NET MVC项目。我有一个名为ProjectA
的项目,它有两个分支(即ProjectA
和ProjectA-Dev
。)ProjectA
是我的生产分支,ProjectA-Dev
是我的开发分支。 ProjectA-Dev
包含许多用于我的项目即将发布的新代码。
我正处于一个阶段,我需要获得从生产到开发的任何变化。当我在ProjectA-Dev
中处理我的下一个版本时,我的生产版本几乎没有修复错误。我想在我的ProjectA-Dev
分支中获得添加的错误修复。
要将ProjectA
合并到ProjectA-dev
,我打开了“解决方案控制资源管理器”,右键单击ProjectA
然后点击“分支和合并”,然后点击“合并”。
在源代码控制合并向导上,我在源分支中选择了$/TFS/ProjectA
。然后在目标分支中选择$/TFS/ProjectA-Dev
。然后我点击“下一步”,选择“最新版本”并点击“完成”。
错误使完整场景。然而,让我感到困惑的是node_modules
在任何一个分支上都不存在。另外,我从本地项目中删除了文件夹node_modules
。
我还应该注意node_modules
用于TFS,但几周后我使用changeset 20000将其从TFS中删除。但是,今天“在最新版本中”文件夹node_modules
执行了在TFS上不存在。我也通过门户网站验证了同样的事情。
我尝试通过删除此文件夹%localappdata%\Microsoft\Team Foundation\5.0\Cache
的内容来本地删除TFS缓存,但问题仍然存在。
如何绕过此错误并正确合并这些更改?
答案 0 :(得分:2)
我跑完后终于开始工作了
tf destroy "$/MyPath/To/Project/node_module"
答案 1 :(得分:1)
TFS可能不知道您更改了什么(删除了node_modules文件),以及在分支项目A中的长更改集期间更改是否与分支相关。
您可以找到首先删除node_modules文件的特定变更集。然后只需使用/discard
选项{。}}。
/ discard 不执行合并操作,但会更新合并 跟踪合并发生的历史记录。这会丢弃变更集 从用于特定的合并。
示例命令:
tf merge $/Project/SourceBranch $/Project/TargetBranch /discard /recursive /version:C56693~C56693
它丢弃变更集56693.版本是从〜到,因此您可以一次丢弃多个变更集。在您的情况下,丢弃变更集,直到删除特定变更集node_modules文件。命令完成后,您仍然需要签入合并。
之后再次执行正常的合并操作。