1
0
wiki/FormalSciences/ComputerScience/SoftwareEngineering/1.协作规范/4.分支(Branch).md
2024-10-13 20:52:05 +08:00

58 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 分支Branch
description: 本文规定了Git仓库中主要分支和辅助分支的命名和使用规则包括主分支、开发分支、功能分支、预发布分支和热修复分支。
keywords:
- Git 分支
- 主分支
- 开发分支
- 功能分支
tags:
- 软件工程/Git协作
- 技术/软件工程
author: 7Wate
date: 2023-06-26
---
![git-flow](https://static.7wate.com/img/2022/10/09/a24754d19f904.png)
| 分支类型 | 命名规则 | 备注 |
| ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
| 主分支 | `main` | |
| 开发分支 | `develop` | |
| 功能分支 | 除 `master`、`main`、`develop`、`release-*`、`hotfix-*` 以外的任何名字 | 避免使用 `master`、`main`、`develop`、`release-*`、`hotfix-*` |
| 预发布分支 | `release-*` | 名称中的 `*` 表示版本号或其他标识 |
| 热修复分支 | `hotfix-*` | 名称中的 `*` 表示版本号或其他标识 |
**为了防止产生歧义,我们建议避免使用简拼命名。**
## 主要分支
中央仓库中存在两个生命期无限长的主要分支:
- Main主分支
- Develop开发分支
主分支 `origin/main``HEAD` 指向的源码总是处于可发布的状态。另一方面,开发分支 `origin/develop``HEAD` 指向的源码应包含为下次版本发布准备的最近的一次提交。
`develop` 分支上的代码达到一个稳定点,并且准备进行发版时,所有在该分支上的修改都应该合并回 `main` 分支,并且打一个版本号标签(`tag`)。
## 辅助分支
为了协助平行开发,简化功能追踪,协助产品发布和快速修复线上版本的 bug我们采用了功能分支、预发布分支和热修复分支。
- Feature branches (功能分支)
- Release branches (预发布分支)
- Hotfix branches (热修复分支)
### 功能分支
功能分支是从 `develop` 创建,必须合并回 `develop`。这些分支主要存在于开发者的本地仓库,不在远程仓库 `origin` 中。
### 预发布分支
预发布分支从 `develop` 创建,必须合并回 `develop``main`。这些分支用于准备新版本的发布,包括进行小的 bug 修复和准备发布数据。发布后,预发布分支可以删除。
### 热修复分支
热修复分支从 `main` 创建,必须合并回 `develop``main`。这些分支用于修复线上版本的严重 bug。修复完成后热修复分支可以删除。如果当前存在预发布分支热修复分支应该合并到预发布分支而不是开发分支。