Git 规范

date
Jul 28, 2023
slug
git-specification-guide
status
Published
tags
Github
summary
分支管理和 commit 规范
type
Post
Created Time
Oct 28, 2023 01:45 PM
Updated Time
Oct 28, 2023 01:45 PM
AI summary
该文章介绍了为什么需要制定 Git 规范,以及分支管理和 Commit 规范的具体内容。分支管理包括主分支、测试分支、开发分支和修复分支。Commit 规范推荐使用 Angular 规范,包括类型、作用域、简短描述、正文和脚注等五个部分。文章还提供了一些参考文章供读者深入了解 Git 规范。
Status

为什么要制定规范?

Git 是一种分布式版本控制系统,广泛用于团队协作开发和代码管理。随着团队规模和项目复杂度的增加,Git 的使用变得越来越复杂,制定 Git 规范有如下理由:
  1. 提高代码质量和可读性:Git 规范可以规定代码风格、命名约定、注释规范等,使得代码更易于阅读和理解,减少误解和错误。
  1. 提高团队协作效率:Git 规范可以规定分支命名、合并流程、提交信息等,使得团队成员之间的工作更加高效和协调。
  1. 提高代码管理可靠性:Git 规范可以规定代码审核流程、版本控制策略等,使得代码管理更加可靠和可控,减少代码丢失或错误。
  1. 便于维护和升级:Git 规范可以规定版本控制策略、分支管理等,使得代码库更加易于维护和升级,减少出现混乱或不可维护的情况。

分支管理

  • main | master:主分支(保护分支),不能直接进行代码的修改和提交。
  • test | develop:测试分支,同样不能直接进行代码的修改和提交,所有开发完成需要提交测试的功能都必须合并到该分支进行测试验收。
  • feature/xxx:开发分支,团队成员根据不同需求,创建独立的功能分支,开发完成后合并到develop | test 分支进行测试验收。
  • fix/xxx | hotfix/xxx:修复分支,通常是修复完成后合并到 develop | test 分支进行测试验收,最后合并到 main | master 分支进行发布,紧急情况下可以直接合并到 main | master 分支进行发布。

Commit 规范

目前开源社区中有多种 commit 规范,每种规范都有自己的特点和适用范围。比较流行的 commit 规范有如下几种:Angular Commit Message Conventions、Conventional Commits、Gitmoji、Karma、Semantic Release 。我比较推荐的是 Angular Commit Message Conventions,也被称为 Angular 规范,Angular 规范的 Commit Message 是指符合 Angular 团队制定的一套规范,用于规范化 Git Commit Message 的格式和内容。这套规范的目的是为了提高 Git Commit Message 的可读性、可维护性和可追踪性,从而方便团队成员协作和代码的管理。
一个完整的符合 Angular 规范的 Commit Message 格式如下:
其中,<类型>[可选的作用域]<简短的描述> 三部分是必须的,而 [可选的正文] 和 [可选的脚注] 则是可选的。
下面对每个部分进行详细解释:
  1. <类型>:表示这个 Commit 的类型,有以下 7 种类型可选:
  • feat:新功能(feature)
  • fix:修复 Bug
  • docs:文档更新
  • style:代码格式化、样式修改等
  • refactor:重构代码
  • test:新增或修改测试代码
  • chore:构建流程、工具等变动
  1. [可选的作用域]:表示这个 Commit 的影响范围,一般情况下可以省略。
  1. <简短的描述>:简短明了地描述这个 Commit 所做的改动,使用动词开头,比如 修改新增删除 等。
  1. [可选的正文]:对 <简短的描述> 进行补充说明,可以包含更详细的信息,比如修改的原因、解决的问题、如何解决问题等。
  1. [可选的脚注]:一般用于关闭 Issue,格式为 close #IssueNumber 或 fix #IssueNumber,其中 close 表示关闭 Issue,fix 表示解决 Issue。
举个例子:
这个 Commit Message 表示新增了用户登录功能,作用域是 login,简短描述是 新增用户登录功能,同时还解决了 Issue #123。

参考文章


© 孙东辉 2022 - 2025