type
status
date
slug
summary
tags
category
icon
password
Git workflow
一、分支规范
1、分支管理规范
- 禁止在主分支
main
上直接进行commit
的提交,即禁止直接在main
分支上进行代码的更改,一切更改都需要依据规范进行命名、提交代码、测试、合并。
- 为简化主分支的提交记录,可在合并时选择将所有
commit
合并为一个,再提交到主分支
2、分支命名规范
对于以下的分支命名规范,有一个约定的格式,即从下列列出中选择合适标签,以
/
分隔标签与自定义名称,单词均小写,且用-
连接。feature
/功能名
如果你要添加新功能或修改现有功能,可以使用该功能的名称作为分支名称,例如:feature/user-authentication(用户认证功能)。
bugfix
/修复名
如果你要修复一个bug,可以使用相关bug的ID或简短描述作为分支名称,例如:bugfix/issue123 或者 bugfix/missing-styles。
refactor
/重构名
如果你在进行代码重构,可以使用简短的描述作为分支名称,例如:refactor/navigation-menu(导航菜单重构)。
hotfix
/紧急修复名
如果你需要紧急修复生产环境中的问题,可以使用 hotfix 开头的分支名称,例如:hotfix/security-issue。
content-update
/内容更新名
如果你只是需要更新文本、图标等内容,可以使用描述性的分支名称,例如:content-update/header-text(更新头部文本)。
design-update
/设计更新名
如果你需要进行设计上的修改,可以使用 design-update 开头的分支名称,例如:design-update/homepage-layout(更新首页布局)。
config
/任务名
有时候可能会有一些非功能性的任务,比如配置文件的更新、依赖项的升级等等,可以考虑添加一个类似于
config
的前缀来标识这类分支,例如:config/update-configs。release
/版本名
如果你正在准备发布一个新版本,可以使用版本号作为分支名称,例如:release/v1.0.0。
test
/测试名
如果你正在进行测试工作,可以使用 test 开头的分支名称,例如:test/user-registration(用户注册测试)。
二、Commit规范
一个
commit
由两部分构成:title
和message
。其中title
为必填项,而message
为选填项。1、Title
对于
title
,命名需要由两部分组成:标签与内容。其中标签从下列规定中选取,是对该次提交的分类;而内容为凝练的短语,需要概括性的描述该commit
的主要功能,即完成了什么工作。标签与内容应该以:
分隔。- feat: 新功能(feature)
- fix: 修复 Bug
- design: 设计相关的更改,对于前端可以是针对布局等明显的改动,也可以针对内容的更改
- ui: 用户界面的调整,针对细节的改动(针对前端项目)
- docs: 更新文档——在工程文件中,也应该对某些函数、组件进行规范性说明,例如前端项目中,应该有一个按照JsDoc规范的注释说明紧贴于函数的定义之前。
- style: 代码风格的调整(不影响代码含义的变动)
- refactor: 重构代码
- test: 添加或修改测试
- chore/config: 对构建过程或辅助工具的更改,例如修改github action配置为:chore: github action;修改tailwindcss配置可以是:config:tailwindcss
- revert: 撤销一个提交
- merge: 执行分支合并操作
2、Message
对于
message
,作为选填项,当commit
的标题内容不足以完全概述此次提交的工作内容,或此次提交完成了多个任务,则需要在message
中分条说明;若此次提交的工作内容需要做额外说明,或内容较复杂,也需通过message
额外说明。而对message
的具体表达,可以根据以下标准形式完成:下面对标准形式的各个部分做解释:
- 标签:即为上一条关于
title
的规范中,所列出的标签,均为一个英文单词
- 范围:范围是此次提交影响的模块或组件,可以是一个文件、目录或者一个模块的名称
- 描述(可选):描述是对此次 Commit 的简要说明,应该清晰、简洁地描述所做的更改,相比于
title
中内容的短语,描述还可以是一个短句
- 主体:主体是对这次提交更详细的说明,可以包括更多的上下文和解释
- 引用(可选):引用可以包括对相关任务、问题或需求的引用,可以是 GitHub Issue 号等
下面举两个具体的例子(除了标签,最好使用中文便于阅读):
3、注意点
- 一个提交应该保持单一的职责,避免多个不相关的更改
- 应该清晰、简洁地描述所做的更改,避免模糊或不明确的语言
- 除了标签均用英文,其余部分中英文皆可,原则为清晰、简洁、便于阅读
- 不要提交到main分支上
三、开发、测试与发布
开发、测试与发布三个步骤在三个不同的基础分支上完成,其中:
- main 为开发分支
- test 为测试分支,与测试环境对接;其上的 pr 只能由 main 提出,交到 test,与其余分支无关。
- release 为发布分支,直接与生产环境对接(多)—— 暂时还没有
- Author:Zachary_Yang
- URL:https://notion-next-git-main-little1ds-projects.vercel.app//article/git-workflow
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!