通用规约

  • 【强制】开发环境的配置文件严禁提交到远程库(前后端都适用)
1
2
3
4
5
# 本地修改配置文件之后不让git跟踪文件修改状态
# git关闭跟踪文件修改提交
git update-index --assume-unchanged "application-dev.yml"
# git打开跟踪文件修改提交
git update-index --no-assume-unchanged "application-dev.yml"
  • 【强制】必须设置 git 提交用户信息
1
2
3
4
5
6
7
8
# git生成ssh密钥
ssh-keygen -t rsa -C "xxx@vanxsoft.net"
# 查看git的配置
git config --list
# 配置git用户信息,username必须为公司档案中文姓名,email必须为公司企业邮箱
git config --global user.name "username"
git config --global user.email "email"
# 若出现中文乱码,请设置git的字符编码为utf-8

一、提交信息格式

提交信息需保持统一的格式,每次提交的 commit message 必须包括 type、scope 和 subject 三部分。

组成部分:

主要分为下面三个部分: Header,Body,Footer。

1
2
3
4
5
<type>(<scope>): <subject>
// 空一行
<body>
// 空一行
<footer>

下面详细解释下个个部分的含义。

1. Header

Header 的部分只有一行,包括三个字段: type(必需), scope(可选), subject(必需)

对应到 idea 插件上图的配置分别为 Header 部分的:

type(必需) Type of change commit 类别
scope(可选) Scope of this change commint 影响的范围
subject(必需) Short description 简短的描述
  1. type

type 用于说明 commit 的类别,只允许使用下面标识

  • feat:新功能(feature)
  • fix:修补 bug
  • docs:文档(documentation)
  • style: 格式(不影响代码运行的变动,空格,格式化,等等)
  • refactor:重构(即不是新增功能,也不是修改 bug 的代码变动)
  • perf: 性能 (提高代码性能的改变)
  • test:增加测试或者修改测试
  • build: 影响构建系统或外部依赖项的更改(maven,gradle,npm 等等)
  • ci: 对 CI 配置文件和脚本的更改
  • chore:对非 src 和 test 目录的修改
  • revert: Revert a commit
  1. scope

scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。

  1. subject

subject是 commit 目的的简短描述,不超过 50 个字符。

1
2
3
以动词开头,使用第一人称现在时,比如change,而不是changed或changes
第一个字母小写
结尾不加句号(.)

2. Body

Body 部分是对本次 commit 的详细描述,可以分成多行。下面是一个范例。

1
2
3
4
5
6
7
如有必要,更详细的说明文本。包装它
大概72个字左右。

后面的段落在空行之后。

-要点也可以
-使用悬挂缩进

有一个注意点。

(1)应该说明代码变动的动机,以及与以前行为的对比。

Footer 部分只用于两种情况。

(1)不兼容变动

如果当前代码与上一个版本不兼容,则 Footer 部分以BREAKING CHANGE开头,后面是对变动的描述、以及变动理由和迁移方法。

(2)关闭 Issue

这里填写 Jira 的 Issue ID,可以关联 Jira 问题

这里的关闭 Issue 并不能改变 Jira Issue 的状态,Gitlab 与 Jira 的插件支持不稳定。但是可以将 Git Commit 关联到 Jira Issue

如果当前 commit 针对某个 issue,那么可以在 Footer 部分关闭这个 issue 。

1
Closes #234

也可以一次关闭多个 issue 。

1
Closes #123, #245, #992

最后一个完整的 commit message 示例如下:

1
2
3
4
5
6
7
8
9
feature(流程管理): 流程管理

-流程模型
-人员分组
-流程表单

BREAKING CHANGE: 不兼容老版本

Closes #101

二、提交信息生成方式

JetBrains 系列 IDE

JetBrains 公司的 IDEAWebStrom 可以安装 Git Commit Message Plugins 插件

安装步骤如下:

(1)安装 Git Commit Message Plugins 插件

1
File -> Settings -> Plugins -> Marketplace -> 搜索 "Git Commit Message Plugins"

image-20220807172600964

(2)使用插件规范提交信息

在 Commit 代码处,选择使用Git Commit Message Plugins插件,如下图所示

image-20220807172616778

image-20220807172624828

VS Code

(1)安装插件

扩展商店搜索 -> git-commit-plugin -> 安装

image-20220807172714708

(2)使用插件生成提交信息

选择对应的部分进行填写,回车确认到下一步

img

填写好提交信息之后正常提交即可

命令行提交

通过多个 -m 做到多行注释提交,每个 -m 代表一行

通过多行注释提交命令,将上面说到的 提交注释模板 分块填写

1
git commit -m "header" -m "body" -m "footer"

例子如下:

1
git commit -m "feature(流程管理): 流程管理" -m "-流程模型" -m "Closes #101"

SoureTree

直接在提交注释输入框内编辑注释信息即可(支持多行编辑)