合并文件夹和文件

出于各种原因(如对文件夹和文件进行分支中所述),许多软件开发团队会在分成不同分支的基本代码中工作。 如果您使用分支,您的团队最终必须在项目的某些阶段将在不同工作分支上完成的工作集成在一起。 例如,在准备好测试软件的完整版本时,需要将在不同功能团队分支中所做的更改合并在一起。

本主题介绍使用 Visual Studio Application Lifecycle Management (ALM) 的图形用户界面将不同分支中所做的更改合并在一起的步骤。 有关如何从命令提示符执行合并的信息,请参见 Merge Command

需要的权限

若要执行这些过程,您必须具有以下权限集:

  • 您必须将源树中项的**“读取”权限和目标树中项的“签出”权限都设置为“允许”**。

  • 您必须为目标路径设置**“合并”**权限。

  • 如果要重命名目标树中的项,您必须将源树和目标树的**“签出”权限都设置为“允许”**。

  • 如果受该操作影响的任意文件处于锁定状态,您必须将**“锁定”权限设置为“允许**”。 有关权限的更多信息,请参见 Team Foundation Server 权限参考

从“源代码管理”窗口启动合并

重要

Visual Studio Team Foundation Server 2010 版开始区分分支与文件夹。例如,在下图中您会看到分支和文件夹以不同图标显示。

一个分支和一个文件夹

虽然仍可以对文件夹进行分支和合并,但团队最好仅对分支进行这些操作。有关详细信息,请参阅对文件夹和文件进行分支

从源代码管理资源管理器合并分支、文件和文件夹

  1. 在**“源代码管理资源管理器”**中,选择要合并的分支、文件夹或文件。

  2. 单击**“文件”菜单,指向“源代码管理”,指向“分支和合并”,然后单击“合并”**。

    将显示**“源代码管理合并向导”**。 有关如何使用此向导完成合并的信息,请参见使用“源代码管理合并向导”完成合并。

从“跟踪变更集”窗口启动合并

可以使用**“跟踪变更集”**窗口查看有关变更集的一些信息,例如在何处创建了变更集、在何处对其进行了合并以及这些事件何时发生等等。 还将突出显示尚未合并变更集的分支。 如果您看到需要变更集的分支没有变更集,可以使用拖放操作修复此问题。

重要

只能对影响分支的变更集执行此过程。例如,在下图中您会看到分支和文件夹以不同图标显示。

一个分支和一个文件夹

有关详细信息,请参阅对文件夹和文件进行分支

将变更集拖放到“跟踪变更集”窗口中

  1. 在**“源代码管理资源管理器”**中,选择一个分支、文件夹或者包含在分支中的文件。

  2. 右击所选项,然后单击**“查看历史记录”**。

  3. 在**“历史记录”窗口中,右击要查看的变更集,然后选择“跟踪变更集”**。

    将显示**“选择分支”**对话框。

  4. (可选)在**“目标分支”**列表中,选中要查看的分支并取消选中要隐藏的分支。

  5. 单击**“可视化”**。

    将出现**“跟踪变更集”**窗口。

  6. 将包含变更集的分支拖到目标分支中。

    将显示**“源代码管理合并向导”**。 有关如何使用此向导完成合并的信息,请参见使用“源代码管理合并向导”完成合并。

示例:那个该新方法在哪?

为阐释上述过程的用法,请考虑下面的示例。 Julie 要求 Chris 在一些 FeatureTeamA 代码中实现一个新方法,以便在其 FeatureTeamB 代码中运用。 Chris 编写了该新方法的代码,然后将其签入到 FeatureTeamA 分支。 他在当天下班离开时在走廊碰到了 Julie,于是告诉她已签入了新方法。

Julie 回到办公桌后,查看最新的源代码,但未看到 Chris 签入的新方法。 她浏览到**“源代码管理资源管理器”,查看 FeatureTeamA 分支的“历史记录”窗口,看到 Chris 确实通过变更集 50 签入了新代码。 于是她右击变更集 50,然后单击“跟踪变更集”**,随即显示了以下窗口:

“跟踪变更集”窗口:合并到父分支

“跟踪变更集”窗口:合并到父分支

从**“跟踪变更集”窗口中,Julie 可以看到 Chris 通过变更集 50 签入了该方法,并通过变更集 51 将该方法合并到了 Dev 分支中。 但只有将变更集 50 合并到 FeatureTeamB 分支后,Julie 才能获取新代码。 于是,她将 Dev 分支拖到 FeatureTeamB 分支中以启动“源代码管理合并向导”**,然后使用该向导完成合并。

使用“源代码管理合并向导”完成合并

完成上述任一过程后,将显示**“源代码管理合并向导”**。 此向导使您可以指定合并的源和目标。 可以将整个分支合并到另一个分支,也可以选取要合并的特定变更集或变更集组。

使用“源代码管理合并向导”合并文件、文件夹或分支

  1. 在**“源代码管理合并向导”“源分支”框中,键入团队项目源分支的名称,或者单击“浏览”**从列表中选择一个分支。

  2. 在**“目标分支”**下拉列表中,选择要与源分支合并的目标团队项目分支。

  3. 通过选择**“对特定版本的所有更改”“所选变更集”选项,选择要合并到目标分支的更改范围,然后单击“下一步”**。

    提示

    如果可能,请单击“对特定版本的所有更改”,因为这样做将减少以后在合并期间发生冲突的风险。

    • 如果选择了**“对特定版本的所有更改”,则会显示“选择源项的版本”**页。 选择要使用的项的版本。

      变更集

      通过指定变更集版本执行合并。

      日期

      通过指定日期版本执行合并。

      Label

      通过指定标签版本执行合并。

      最新版本

      通过指定最新版本执行合并。

      工作区

      通过指定工作区版本执行合并。

    • 如果选择了**“所选变更集”,则会显示“选择要合并到目标分支中的变更集”**页。 选择要合并的变更集。

      提示

      可以按住 Shift 或 Ctrl 键,然后选择连续范围的多个项。

  4. 单击**“下一步”,然后在“执行合并操作”页上单击“完成”**。

    此时将生成一个或多个挂起的更改。

  5. (可选)如果要立即签入这些挂起的更改,可以执行以下步骤:

    1. 在**“视图”菜单上,指向“其他窗口”,然后单击“挂起的更改”**。

    2. 使用“挂起的更改”窗口签入这些更改。 有关详细信息,请参阅向团队的代码库签入工作成果

请参见

概念

使用源代码管理资源管理器管理受版本控制的文件

其他资源

使用分支隔离 Team Foundation 版本控制中的风险

Merge Command

Merges Command

解决 Team Foundation 版本控制冲突