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

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

Visual Studio 2019 | Visual Studio 2022

由于对文件夹和文件进行分支中所述的各种原因,许多软件开发团队在 Team Foundation 版本控制 (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. 如果你选择了“特定版本之前的所有更改”,则将显示“选择源项的版本”页面。 选择要使用的项的版本。

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

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

    提示

    可以按住 Ctrl 或 Shift 键,然后选择多个项。

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

    生成了一个或多个挂起的更改。

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

后续步骤