第 3 章 分支机构 分支机构
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
分支允许用户在软件项目中启动单独的 开发线。创建分支时,就是从项目时间线的特定状态创建一个分叉。这样,开发工作就能同时向多个方向推进。把它想象成时空旅行,你可以从一个起点创建另一条平行的时间线。分支还能让你创建项目的不同版本。通常情况下,一个分支可以与其他分支进行调和与合并,将不同的工作结合起来。
在 Git 中创建分支被认为是一种轻量级、低成本的操作。这是因为分支只是一个指向 Git 仓库中特定提交对象的指针。Git 允许多个分支,因此在任何特定时刻,一个仓库中都可以同时存在许多不同的开发线。此外,Git 对分支间的合并也有一流的支持。因此,大多数 Git 用户都会经常使用分支,而我们也鼓励他们经常这样做。
在本章中,我们将通过研究开发人员如何在一个项目中维护多条开发线,以自上而下的方式来思考分支在 Git 中的功能。本章讨论的概念将补充我们在第二章中学到的主要知识。
我们将向你展示如何列出、查看、选择、创建和放弃分支。我们还将提供一些最佳实践,以确保分支不会破坏时间结构和平行时间线的存在。1
在 Git 中使用分支的动机
在 Git 仓库中,出于无数的技术、哲学、管理甚至社会原因,都可以创建一个分支 。Git 的分布式特性加上深思熟虑的分支策略,使得各种开发工作流程得以存在,为不同团队之间的项目工作提供了一种结构化的方式。以下是一些常见的理由:
-
分支可以反映项目开发生命周期的各个阶段--例如,稳定、开发、候选发布和生产发布阶段。这可以提供清晰度,并以系统和协调的方式简化团队之间的工作流程。
-
分支通常还用来代表特定的产品发布版本。如果你想启动项目的新发布版本,但你知道有些客户可能想继续使用旧发布版本,那么你可以选择将旧发布版本作为一个单独的分支来维护,以实现向后兼容性。
-
分支为您提供了一种选择,让您可以在一个独立的开发环境中迭代和开发特定功能,或研究项目中的错误修复方法。这样就能创建多个功能分支,封装定义明确的概念或想法,在发布前通过合并进行整合。Git 的分支系统功能强大且成本低廉,因此我们鼓励使用这种方法,而且在处理每个分支中的小改动时,这种方法也不会被认为是矫枉过正。特性一词只是表示版本库中的每个分支都有特定用途。
-
大型复杂项目中的单个分支可以代表单个开发人员的工作。这种工作方法使具有复杂项目开发要求的团队能够独立实施项目的不同活动部分,然后再创建一个新的分支,将多个活动部分整合并统一为特定版本的最终产品。
Git 也有跟踪分支的概念,即 一个分支来保持仓库克隆的同步。第 11 章将介绍如何使用跟踪分支。
分支指南
在项目中建立最佳实践和明确的实用指南,不仅能确保项目的成功,还能为参与其中的每个人带来愉悦的体验。在 Git 仓库中处理分支也不例外。在本节中,我们将详细介绍在 Git 中使用分支时的一些常见做法和指导原则。
分支名称
为分支指定的名称基本上是 随意的,不过也有一些限制。初始化新仓库时,Git 会分配一个默认的分支名称。从 Git 2.37.1 版开始,默认的分支名称是master ,但为了尊重和包容命名规则,这个名称可能会有变动。开发人员使用 Git 的默认分支来维护项目健壮稳定的代码库。Git 允许重命名甚至删除默认分支。如果你正在初始化一个新仓库,可以按如下方式更改默认分支名称:
$ git init --initial-branch=branch-name ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access