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