Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020
Visual Studio 2019 |Visual Studio 2022
可以使用分支来实现以下目标:
- 在同一代码库上管理多个团队的并发工作。
- 隔离由不同代码库更改集引入的风险。
- 拍摄快照,然后支持后续的独立更改(例如,创建发布分支)。
例如,下图显示了 DinnerNow 公司为满足其业务需求而开发的分支结构。
功能团队 A 和功能团队 B 各自在单独的分支中执行其工作。 当团队准备好将其工作集成时,他们将其分支合并到开发人员分支中。 当开发分支中的生成稳定且准备好进行测试时,团队会将开发分支合并到测试分支。
发布每个版本时,主分支将分支分支到新版本分支,例如 Version1 分支和 Version2 分支。 通过遵循此策略,公司可以根据需要单独增强或修复产品的每个过去版本。
可以使用 Visual Studio 源代码管理资源管理器执行分支作,如本文所示,或者在 branch 命令提示符处执行命令。 有关详细信息,请参阅 Branch Command。
小窍门
分支是创建文件并行版本集的重要且功能强大的技术。 但是,使用分支可以增加项目的复杂性和成本。 例如,合并两个分支时,可能需要解决冲突。
在创建分支之前,应考虑是否可以通过应用标签来更好地满足需求。 通过应用标签,可以快速轻松地拍摄文件状态的快照,以便稍后可以检索或生成处于该状态的文件。 有关详细信息,请参阅 使用标签拍摄文件快照。
先决条件
| 类别 | 要求 |
|---|---|
| 权限 | - 若要将文件夹转换为分支: 将分支 权限设置为 “允许”。 - 分支分支: 管理分支 权限设置为 “允许 源分支和目标分支的路径”。 - 目标分支路径设置为“允许”的合并权限。 - 若要对文件夹或文件进行分支:签出目标路径设置为“允许”的权限和合并权限。 |
有关详细信息,请参阅 默认 TFVC 权限。
将文件夹转换为分支
分支不同于文件夹。 下图显示了 Visual Studio 源代码管理资源管理器中 DinnerNow 文件夹结构的顶层。
如图所示,你仍然可以使用文件夹来组织项目版本控制层次结构中的分支。 但是,文件夹和分支具有不同的外观和不同的功能。 右键单击文件夹或分支并选择 “高级>属性”时,将显示不同的信息和不同的功能。
执行分支作时,分支在文件夹上具有重要的优势。 分支支持版本控制功能,这些功能提供分支结构的额外可见性,以及更改集合并的位置。 尽管你仍然可以在文件夹中进行分支和合并,但团队的最佳做法是仅分支和合并在分支之间。 以下过程说明如何将文件夹转换为分支。
重要
确保要转换的文件夹存在于服务器上。 如果挂起的加法图标
。显示在 源代码管理资源管理器中的文件夹旁边,右键单击该文件夹,然后选择“ 签入挂起的更改”。
在 源代码管理资源管理器中,右键单击要转换的文件夹,然后选择 “分支”和“合并>转换为分支”。
在“ 将文件夹转换为分支 ”对话框中:
- 在 “所有者 ”字段中,可以选择输入拥有此分支的人员的姓名。 此字段仅用于信息,不授予任何权限。
- 在 “说明 ”字段中,可以选择键入信息来帮助其他团队成员使用此分支或了解其用途。
- 如果要转换已分支的文件夹,请选择 “递归对所有分支子文件夹执行此转换 ”复选框。 此选项将已从此文件夹分支的所有文件夹转换为分支。
选择 “转换”。
重要
不能嵌套分支。 因此,如果文件夹包含或由分支包含,则不能将其转换为分支。 例如,下图显示 FeatureTeamA 分支的父分支和子级都不能转换为分支。
将文件夹转换为分支后,如果团队决定更改分支结构,则可以将其转换回文件夹。
将分支转换为文件夹
- 在 源代码管理资源管理器中,选择要转换的分支。
- 在 Visual Studio 文件 菜单中,选择 “源代码管理>分支”和“合并>转换为文件夹”,然后选择“ 是”。
分支分支
将文件夹转换为分支后,可以从该分支创建其他分支。 以下过程演示如何使用 Visual Studio 对分支进行分支。 若要在命令提示符下执行此任务,请参阅 Branch Command。
在 源代码管理资源管理器中,右键单击要分支的分支,然后选择 “分支”和“合并>分支”。
在<“分支名称>”对话框中的“分支版本”下,(可选)下拉列表,然后从“按”列表中选择一个选项:
- 最新版本 为版本控制中的最新版本创建分支。
- 通过 Changeset ,可以在 “更改集 ”框中输入更改集的数量,或选择省略号 ... 以打开 “查找更改集 ”对话框。 有关详细信息,请参阅 “查找和查看更改集”。
- 日期 允许在 “日期 ”框中输入或选择日期。
- 标签 允许你输入或查找标签。 有关详细信息,请参阅 使用标签拍摄文件快照。
- 使用工作区版本 可以在不同的工作区中创建版本的分支。
在 “目标分支名称”下,指定或浏览到并选择新分支的路径。
选择 “分支”。 分支创建并显示在 源代码管理资源管理器中。
注释
与大多数版本控制作不同,此作不会生成挂起的更改。 相反,作会立即完成,无法撤消作。
对文件夹或文件进行分支
虽然可以直接对文件夹或文件进行分支,但建议避免这样做。 如果直接对文件或文件夹进行分支,则无法 查看分支层次结构 或 跟踪更改集。 最佳做法是仅在分支之间分支和合并,如本文前面所述。
但是,如果你有特殊需要对文件夹或文件进行分支,则可以使用以下过程。 若要在命令提示符下执行此任务,请参阅 Branch Command。
在 源代码管理资源管理器中,右键单击要分支的文件夹或文件,然后选择 分支和合并>分支。
在 “分支 ”对话框中的 “目标 ”框中,修改新分支的位置和名称,或选择“ 浏览 ”以浏览到并选择目标。
在 “分支”下,可以选择从“ 按 ”列表中选择一个选项:
- 最新版本 为版本控制中的最新版本创建分支。
- 通过 Changeset ,可以在 “更改集 ”框中输入更改集的数量,或选择省略号 ... 以打开 “查找更改集 ”对话框。 有关详细信息,请参阅 “查找和查看更改集”。
- 日期 允许在 “日期 ”框中输入或选择日期。
- 标签 允许你输入或查找标签。 有关详细信息,请参阅 使用标签拍摄文件快照。
- 使用工作区版本 可以在不同的工作区中创建版本的分支。
(可选)选择“ 将目标项下载到工作区 ”,以在本地工作区上创建版本控制项的副本。 如果不需要本地副本,并且希望通过不将许多项目下载到计算机来提高性能,请清除该复选框。
选择“确定”。 分支创建并显示在 源代码管理资源管理器中。
注释
如果选择“将目标项下载到工作区”,并且指定的本地文件夹未在当前工作区中映射,将显示“浏览文件夹”窗口。 浏览文件夹,或选择“ 新建文件夹”,指定要同步到版本控制的项的文件夹,然后选择“ 确定”。