目录:
新概念的定义
为了能够严谨、准确、方便地表达分支之间的关系,我定义了以下概念:
临时性分支 终将会被合并到 长期分支中(除非弃用),如,开发完功能后,因转测,需要把 功能分支 合并到 测试分支 中,测试完后,测试分支 又会被合并到 预发布 分支中,最后,预发布分支 又会被合并到 发布分支 中;在这个过程中,功能分支 依次被合并到了 测试分支、预发布分支、发布分支;
像上面这样,分支 在被其它分支合并的过程 称为分支的 流转;
分支A 被合并到 分支B ,也称为 分支A 流转到了 分支B;
分支A 流转到了 分支B,分支B 又流转到了 分支C ,像这样的过程称为 分支A 的 连续流转,也称为 分支A 连续流转到了 分支C;
连续流转过程中的每一个分支 都称为该连续流转的一个 流转环节,也称为该连续流转的一个 流转分支;
连续流转的所有 流转环节 的有序组合 称为 流转链;
流转链中 最初的 流转环节(流转分支) 又称为该流转链的 原始分支 或 初始环节;
流转链中 最终的 流转环节(流转分支) 又称为该流转链的 终点分支 或 终点环节;
流转链中 原始分支 和 终点分支 之间的 流转分支 称为 中间分支 或 中间环节;
如果 分支A 是基于 分支B 创建的,即: 分支A 是从 分支B 创建的,则称 分支B 是 分支A 的 直接母分支; 分支A 是 分支B 的 直接子分支;
分支A 的 直接母分支 和 其 直接母分支 的 直接母分支 等(以此类推) 统称为 分支A 的 母分支;
分支A 的 直接子分支 和 其 直接子分支 的 直接子分支 统称为 分支A 的 子分支;
母分支 和 子分支 之间的关系 称为 互为 母子关系;
母分支 和 子分支 统称为 母子分支;
直接母分支 和 直接子分支 之间的关系 称为 互为 直接母子关系;
直接母分支 和 直接子分支 统称为 直接母子分支;
如果总是从 分支A 合并(或变基)到 分支B,即:则称 分支A 是 分支B 的 直接上游分支; 分支B 是 分支A 的 直接下游分支;
分支A 的 直接上游分支 和 其 直接上游分支 的 直接上游分支 等(以此类推) 统称为 分支A 的 上游分支;
分支A 的 直接下游分支 和 其 直接下游分支 的 直接下游分支 统称为 分支A 的 下游分支;
上游分支 和 下游分支 之间的关系 称为 互为 上下游关系;
上游分支 和 下游分支 统称为 上下游分支;
直接上游分支 和 直接下游分支 之间的关系 称为 互为 直接上下游关系;
直接上游分支 和 直接下游分支 统称为 直接上下游分支;
母子关系 和 上下游关系 的区别:
- 母子关系 强调的是分子之间的创建关系
- 上下游分支 强调的是分子之间的合并关系
分支的分类
按照生命周期来分
- 长期:伴随Git项目一直存在的分支;
- 临时:针对特定任务或目的而建的,且 当完成任务或达到目的后需要被删除的分支;
按照作用来分
- 发布:为存放已发布的、正式的版本而建的分支;
- 预发布:为即将正式发布的版本做试运行而建的分支;如果没有试运行阶段,则可以不设 预发布 分支;
- 功能:为实现一个 或 多个 功能而开设的分支;
- 修复:为修复一个 或 多个 问题 而开设的分支;
- 协作:为实现多人协作而开设的分支;
- 合并:为合并多个分支而建的分支;
- 测试:为测试而建的分支;
按照流转环节来分
- 流转分支
- 原始分支
- 中间分支
- 终点分支
- 母分支