在 Azure Repos 中合并文件夹和文件

Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 |Visual Studio 2022

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

本文中的过程说明如何使用 Visual Studio 图形用户界面将不同分支中所做的更改合并在一起。 有关如何在命令提示符处执行合并的信息,请参阅 Merge 命令

先决条件

若要执行这些过程,请设置以下权限:

  • 将源树中项的读取权限和目标树中项的签出权限设置为允许
  • 为目标路径设置合并权限。
  • 如果要重命名目标树中的项,你必须将源树和目标树的签出权限设置为允许
  • 如果锁定了任何受操作影响的文件,你必须将锁定权限设置为允许

有关权限的详细信息,请参阅 默认 TFVC 权限

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

分支和文件夹不同。 例如,下图显示了分支和文件夹在 Visual Studio 源代码管理资源管理器中的不同图标的显示方式。

显示分支图标和文件夹图标的屏幕截图。

尽管你仍然可以在文件夹之间进行分支和合并,但团队应遵循的最佳实践是只在不同的分支之间进行分支和合并。 有关详细信息,请参阅 分支文件夹和文件

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

  1. 在 Visual Studio 源代码管理器中,右键单击要合并的分支、文件夹或文件,然后选择“正在进行分支和合并”>“合并”。

    你也可以选择文件,然后选择“文件”>“源代码管理”>“正在进行分支和合并”>“合并”。

  2. 源代码管理合并向导中,完成合并

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

可以使用 跟踪变更集 窗口查看信息,例如更改集的创建位置、合并位置以及发生这些事件的时间。 还突出显示了尚未合并变更集的分支。 如果你看到缺少所需变更集的分支,则可以将其拖入。

重要

你只能对影响分支的变更集执行此过程。 有关详细信息,请参阅 分支文件夹和文件

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

  1. 源代码管理资源管理器中,选择分支、文件夹或分支中包含的文件。

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

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

    “选择分支”对话框随即显示。 在 目标分支 列表中,您可以勾选想要查看的分支,并取消选择想要隐藏的分支。

  4. 选择“可视化”。

  5. 在“跟踪变更集”窗口中,将包含要合并的变更集的分支拖动到目标分支。

  6. 源代码管理合并向导中,完成合并

示例:合并新方法

若要说明如何使用前面的过程,请考虑以下示例。 你的团队成员要求你在其 feature2-branchB 代码中使用的一些 feature2-branchA 代码中实现新方法。 你为新方法编写代码并将其签入到 feature2-branchA 分支。 你让你的团队成员知道你已经签入了新方法。

你的团队成员找到了最新的源,但没有看到你签入的新方法。 他们打开“源代码管理器”,查看 feature2-branchA 分支的“历史记录”窗口,然后看到该分支具有在新方法中签入的变更集 66。 你的团队成员右键单击变更集 66 并选择“跟踪变更集”,随即显示以下窗口:

显示用于签入和合并分支的“跟踪变更集”窗口的屏幕截图。

从“跟踪变更集”窗口,你的团队成员可以看到签入了具有变更集 66 的方法,并将其合并到具有变更集 67 的 feature2 分支。 但在将变更集 67 合并到 feature2-branchB 分支之前,他们无法获得新代码。 因此,他们将 feature2 分支拖到 feature2-branchB 分支上,以启动用于完成合并的“源代码管理合并向导”。

使用源代码管理合并向导来完成合并操作

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

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

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

  2. 目标分支 下拉列表中,选择要将源分支合并到的目标项目分支。

  3. 通过选择“特定版本之前的所有更改”或“选定的变更集”,来选择要合并到目标分支中的更改范围,然后选择“下一步”。

    提示

    如果可能,请选择“特定版本之前的所有更改”。 这种做法可降低将来合并中冲突的风险。

  4. 如果你选择了“特定版本之前的所有更改”,则将显示“选择源项的版本”页面。 选择要使用的项的版本。

    • 变更集:通过指定变更集版本进行合并。
    • 日期:通过指定日期版本进行合并。
    • 标签:通过指定标签版本进行合并。
    • 最新版本:通过指定最新版本进行合并。
    • 工作区版本:通过指定工作区版本进行合并。

    或者,如果你选择了“选定的变更集”,将显示“选择要合并到目标分支中的变更集”页面。 选择要合并的变更集。

    提示

    可以按住 CtrlShift 键,然后选择多个项目。

  5. 选择“下一步”,然后在“执行合并操作”页上,选择“完成”。

    已生成一个或多个待处理的更改。

  6. (可选)使用“团队资源管理器”中的“挂起的更改”页立即签入挂起的更改。 你可以使用“查看”>“其他窗口”>“挂起的更改”打开该页面。 有关详细信息,请参阅将工作签入团队的代码库

后续步骤