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

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

Visual Studio 2022 |Visual Studio 2019 |Visual Studio 2017 |Visual Studio 2015 |Visual Studio 2013

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

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

先决条件

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

  • 必须具有源树中项的“读取”权限,并且目标树中项的“签出”权限设置为“允许”。

  • 必须为目标路径设置 合并 权限。

  • 如果目标树中的项正在重命名,则必须具有源树和目标树设置为“允许”的签出权限。

  • 如果操作影响的任何文件都锁定,则必须将 “锁定 ”权限设置为 “允许”。

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

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

重要

Visual Studio Team Foundation Server 2010 的发布开始区分分支和文件夹。 例如,在下图中,可以看到分支和文件夹如何以不同的图标显示。

Screenshot shows a branch icon and a folder icon.

虽然仍然可以在文件夹之间分支和合并,但团队的最佳做法是仅分支和合并分支。 有关详细信息,请参阅 分支文件夹和文件

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

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

  2. 选择 “文件>源代码管理>分支”和“合并”,然后选择“ 合并”。

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

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

可以使用“跟踪更改集”窗口查看信息,例如,更改集的创建位置、合并的位置以及发生这些事件的时间。 更改集尚未合并的分支也突出显示。 如果看到需要更改集但缺少的分支,请将其拖动到其中。

重要

此过程只能针对影响分支的更改集执行。 例如,在下图中,可以查看以不同图标显示分支和文件夹的方式。

Screenshot shows a branch icon and a folder icon.

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

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

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

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

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

    此时会显示 “选择分支 ”对话框。

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

  5. 选择“可视化”。

    此时会显示“跟踪更改集”窗口。

  6. 将包含更改集的分支拖动到目标分支。

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

示例:新方法在哪里?

若要说明如何使用前面的过程,请考虑以下示例。 Julie 要求 Chris 在 一些 FeatureTeamA 代码中实现新方法,她在 FeatureTeamB 代码中使用。 Chris 为新方法编写代码,然后将其签入 FeatureTeamA 分支。 当朱莉离开那天时,他在走廊里遇到朱莉,并提到他正在检查新方法。

朱莉回到办公桌前,找到最新的消息来源,但她看不到克里斯签入的新方法。 她打开源代码管理资源管理器,查看 FeatureTeamA 分支的历史记录窗口,她可以看到,更改集 50 Chris 确实签入了新方法。 她右键单击更改集 50 并选择 “跟踪更改集”,并显示以下窗口:

Screenshot shows the Tracking Changeset window: merge to parent branch.

在“跟踪更改集”窗口中,Julie 可以看到 Chris 使用 changeset 50 签入了方法,并将其合并到具有 changeset 51 的 Dev 分支。 但是,在 changeset 51 合并到 FeatureTeamB 分支之前,Julie 无法获取新代码。 因此,她将 开发 分支拖到 FeatureTeamB 分支上,以启动 源代码管理合并向导,然后,该向导用于完成合并。

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

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

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

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

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

  3. 选择要合并到目标分支的更改范围,方法是选择“ 所有更改”到特定版本“所选更改集 ”选项,然后选择“ 下一步”。

    提示

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

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

      变更集

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

      日期

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

      Label

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

      最新版本

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

      工作区

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

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

      提示

      可以按住 CtrlShift 键,然后在连续范围内选择多个项目。

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

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

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

    1. 选择“视图”菜单,指向“其他Windows”,然后选择“挂起的更改”。

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

后续步骤