什么';在Microsoft TFS源代码管理中解决冲突时,放弃更改集和保留目标版本之间的区别

什么';在Microsoft TFS源代码管理中解决冲突时,放弃更改集和保留目标版本之间的区别,tfs,azure-devops,merge-conflict-resolution,tfvc,changeset,Tfs,Azure Devops,Merge Conflict Resolution,Tfvc,Changeset,当您在Microsoft TFS源代码管理中合并更改集时,您的更改可能会发生冲突,如果无法自动解决,则必须自行解决。或者您可以选择源版本或保留目标版本。 另一个解决方法是放弃变更集 “保留目标版本”和“放弃变更集”,他们都说目标版本是将被保留的正确版本。 那么,它们之间到底有什么区别呢?为什么两者都存在 不同之处在于保存历史的微妙方式。当您“保留目标版本”时,一个更改通知单与合并一起存储,告诉它在将来忽略差异 当您“撤消”合并中的更改时,不会记录任何票证,并且这些分支/文件之间的未来合并将建议再

当您在Microsoft TFS源代码管理中合并更改集时,您的更改可能会发生冲突,如果无法自动解决,则必须自行解决。或者您可以选择源版本或保留目标版本。 另一个解决方法是放弃变更集

“保留目标版本”和“放弃变更集”,他们都说目标版本是将被保留的正确版本。
那么,它们之间到底有什么区别呢?为什么两者都存在

不同之处在于保存历史的微妙方式。当您“保留目标版本”时,一个更改通知单与合并一起存储,告诉它在将来忽略差异

当您“撤消”合并中的更改时,不会记录任何票证,并且这些分支/文件之间的未来合并将建议再次合并这些更改

如果您的更改尚未准备好合并到目标分支,但(意外地)被选为合并操作的一部分,则需要执行第二次(撤消)

如果您希望该版本成为领先版本,并且不希望将来合并这些差异,那么您将执行第一个(Take/Keep)


许多开发人员不理解这种差异,当您拥有长期存在的分支时,可能会出现问题,如
dev
&
main
。如果人们经常使用“keeptarget”,dev和main之间的合并将不会显示任何要合并的更改,但是两者之间的差异可能会暴露出许多差异。一般来说,我会指导团队撤销更改,而不是选择“保留我的”或“接受他们的”。

感谢您的快速回复。你说的“撤销”到底是什么意思?我认为这相当于TFS中的“回滚”。这与“放弃”不同。我的意思就是这个命令:tf merge/discardNo undo是“undo pending changes”,它撤消对特定文件的合并。从命令行中放弃更改集相当于“接受他们的更改”,表示这些更改永远不需要合并。因此,在放弃更改集和保留目标版本之间,答案将是“没有区别”。不是吗?唯一的区别是放弃一个变更集,即放弃该变更集中所有文件的更改。保持目标可以在文件级别完成。因此,您可以选择:
保留目标
保留源
在每个文件级别上撤消挂起的更改
,以及在更改集级别上放弃更改集。