我需要将变更集合并到 TFS 中的另一个分支。但不幸的是,由于此变更集中发生了不需要的代码签入,我无法将完整的变更集合并到新分支。因此,我需要从变更集中跳过不需要的文件并将其他文件合并到新分支。有没有可能这样做?Ps:由于变更集很大,我无法手动合并它。
1 回答
您可以这样做,您将要实现的效果类似于部分合并。
当仅变更集中的一些更改合并到目标中时,会记录部分合并。在以下两种常见情况下,您最终可能会出现部分合并:
场景 1:在检查合并文件时撤消一些挂起的更改
在这种情况下,即使我们已经将变更集Dev合并到Main,它仍然是一个合并候选者。这是因为合并引擎检测到该变更集中仍有一些未从 Dev 传播到 Main 的更改。
场景 2:在特性级别而不是从分支顶部执行合并
例如:假设您有两个分支Main和Dev,每个分支都有两个文件夹(Feature1 和 Feature2),每个特征文件夹包含一个文件。我们从功能文件夹 (Dev\Feature1\feature1.txt
和Dev\Feature2\feature2.txt
) 中编辑这两个文件并签入更改。
如果您在 Feature1 级别执行合并操作。(<em>Changset142→ Changeset143) 您会注意到在 Pending Changes 窗口中,只有在Feature1
文件夹中完成的编辑会被合并。完成合并。
如果您查看 Feature1 文件夹的合并历史记录,您将看到来自变更集 142 的所有更改都已合并到变更集 143。
但是,如果您查看 Main 的合并历史记录,您会看到只有部分变更集 142 已合并到变更集 143。这是正常的,因为变更集 142 有一些更改 - 编辑 Feature2 文件夹中的文件 - 这没有交付。
在部分合并的情况下,找出哪些更改已合并,哪些更改从变更集中被遗漏。实现这一点的唯一方法是区分部分合并的变更集的内容,以及作为合并结果生成的变更集的内容。您可以参考此博客的更多详细信息:TFS 中的部分合并 - 指南
因此,如果您不需要的代码只存在一个或几个文件,您可以按照方案 1 撤消这些文件。
如果这些文件还包含一些其他需要的更改,那么我建议您直接合并所有更改并在合并操作后创建一个新的更改集以排除那些不需要的代码。
这应该是最简单的解决方案。