将开发分支合并到主分支:合并没有任何更改

问题描述 投票:0回答:3

我的主分支有一些文件与开发分支的同一文件具有不同的代码。开发分支是具有这些文件的正确版本的分支,但是当我尝试将其合并到主分支(目标)时;我收到一条消息说

没有任何要合并的更改

我怎样才能解决这个问题,以便主分支拥有这些文件的正确版本?

branching-and-merging tfvc
3个回答
20
投票

合并文件时,TFS 不仅会查看两个分支之间的差异,还会跟踪您在之前的合并尝试中是否忽略了这些更改。合并 TFS 时出现冲突时为您提供 3 个选项:

  1. 合并
  2. 保留来源
  3. 保持目标

当您选择“保留目标”或手动合并并取消选择某些更改时,TFS 会将这些更改标记为“已解决”,并且当您将来尝试合并时不会再次提供它们。这称为“合并信用”。 您还可以在使用

tf merge /discard

时使用命令行创建这些问题,这将告诉 TFS 在考虑合并时忽略这些文件/变更集中的更改。

有两种方法可以强制 TFS 重新考虑这些更改:

  1. 使用强制合并

    。在命令行上,您可以启动合并,其中 TFS 将暂时忽略其记录,并为您提供每个不同的文件进行合并。这可能需要大量工作,但一旦完成,您的合并历史记录将恢复原状。发出强制合并运行 tf merge $/Source/Folder/File $/Target/Folder/File /force /version:T 这几乎肯定会引发合并冲突,您可以解决该冲突以在目标分支中获得正确的更改。

    
    

  2. 使用回滚

    撤消之前的合并。如果您最近完成了合并,其中更改集已被丢弃。在历史记录中找到它,右键单击变更集并选择Rollback并签入已撤消的代码。这实际上将删除该变更集中的所有更改,并将重置“合并积分”。完成此操作后,您可以重做合并并这次正确完成。这也可以使用 tf rollback

     从命令行完成
    


0
投票

tf merge "$/Source/Folder/File.cs" "$/Target/Folder/File.cs" /force /version:T



0
投票

© www.soinside.com 2019 - 2024. All rights reserved.