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