优雅提交 Git Commit Message

简介: 那么如何能优雅而又不失体面的提交你的代码呢?其实我们的 `git commit message` 是应该具备一些规范的。目前规范用的比较多的是 Angular 团队规范

Message 规范

那么如何能优雅而又不失体面的提交你的代码呢?其实我们的 git commit message 是应该具备一些规范的。目前规范用的比较多的是
Angular 团队规范

message 样例:

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
  • Type

:必须是下列之一

* **feat** :一个新功能
*  **fix** :bug修复
*  **docs** :编辑文档
*  **style** :不影响代码含义的更改(空格、格式、缺少分号等,不是css的更改)
*  **refactor** :既不修复bug也不添加特性的代码更改
*  **perf** :提高性能的代码更改
*  **test** :添加缺失的或纠正现有的测试
*  **chore** :对构建过程或辅助工具和库(如文档生成)的更改
  • Subject :主题包含对变更的简洁描述

  • Body :具体的修改内容,可以包括与之前的对比

  • Footer :通常是 BREAKING CHANGE 或修复的 issue 链接

规范工具

简介

commitizen git commit 格式化工具, 为我们提供标准化的 commit 信息。 帮助我们统一项目commit ,
便于信息的回溯或日志的生成。# commit message 格式

commitizen 只是提供一个commit 格式化或交互工具, 最终需要输出符合 commit 规则的信息给 git, 所以需要线了解 commit
格式规则

安装

npm install -D commitizen cz-conventional-changelog

package.json中添加

  "scripts": {
      ...
    "commit": "git-cz"
  },
  "config": {
    "commitizen": {
      "path": "./node_modules/cz-conventional-changelog"
    }
  }

自定义 Adapter

如果 Angular 的规范不符合我们的实际,同样我们也可以通过 cz-
customizable

定制一套符合自己或者团队的规范。

npm install -D cz-customizable

同时package.json需要修改

"config": {
  "commitizen": {
    "path": "node_modules/cz-customizable"
  }
}

之后对应项目目录下创建 .cz-config.js 文件,用来维护自己的格式

官网中有对应的样例配置文件:cz-customizable/cz-config-EXAMPLE.js at master · leoforfree/cz-
customizable · GitHub

校验 Message

工具:

可以做到如果不符合校验规范,就会直接拒绝 commit 请求

安装

# Angular 团队的规范
npm install -D @commitlint/config-conventional @commitlint/cli
# 自定义规范
npm install -D commitlint-config-cz @commitlint/cli
配置文件

在项目目录下创建配置文件 .commitlintrc.js

Angular 团队的规范

module.exports = {
  extends: [
    ''@commitlint/config-conventional''
  ],
  rules: {
  }
};
自定义规范

module.exports = {
  extends: [
    'cz'
  ],
  rules: {
  }
};

Husky

在做前端工程化时husky可以说是一个必不可少的工具。husky可以让我们向项目中方便添加git hooks。

官方链接:typicode/husky: Git hooks made easy 🐶 woof!
(github.com)

安装

npm install -D husky

配置

package.json中添加:

"husky": {
    "hooks": {
      ...,
      "commit-msg": "commitlint -e $GIT_PARAMS"
    }
  },

或者在 .huskyrc 文件中

{
  "hooks": {
    ...,
    "commit-msg": "commitlint -e $GIT_PARAMS"
  }
}
目录
相关文章
|
8月前
|
人工智能 缓存 开发工具
结合企业实践来规范你的Git commit(含插件使用指南)
结合企业实践来规范你的Git commit(含插件使用指南)
结合企业实践来规范你的Git commit(含插件使用指南)
|
8月前
|
开发工具 git
Git Commit Msg
Git Commit Msg
79 0
|
8月前
|
JSON 开发工具 git
git rebase 合并当前分支的多个commit记录
git rebase 合并当前分支的多个commit记录
175 1
|
4月前
|
开发工具 git
GIT:如何合并已commit的信息并进行push操作
通过上述步骤,您可以有效地合并已提交的信息,并保持项目的提交历史整洁。记得在执行这些操作之前备份当前工作状态,以防万一。这样的做法不仅有助于项目维护,也能提升团队协作的效率。
176 4
|
4月前
|
开发工具 git
GIT:如何合并已commit的信息并进行push操作
通过上述步骤,您可以有效地合并已提交的信息,并保持项目的提交历史整洁。记得在执行这些操作之前备份当前工作状态,以防万一。这样的做法不仅有助于项目维护,也能提升团队协作的效率。
298 3
|
5月前
|
开发工具 git
Git——commit的提交规范
Git——commit的提交规范
128 4
|
5月前
|
测试技术 持续交付 开发工具
[译] 为何每次 Git Commit 要尽可能小?
[译] 为何每次 Git Commit 要尽可能小?
|
5月前
|
Java 开发工具 Android开发
Android Studio利用Build.gradle导入Git commit ID、Git Branch、User等版本信息
本文介绍了在Android Studio项目中通过修改`build.gradle`脚本来自动获取并添加Git的commit ID、branch名称和用户信息到BuildConfig类中,从而实现在编译时将这些版本信息加入到APK中的方法。
120 0
|
6月前
|
前端开发 JavaScript 开发工具
前端优化之路:git commit 校验拦截
前面在git分支规范那篇文章里,介绍了commit提交规范,但是想要做到高效落地执行,就需要做些别的功课。
|
5月前
|
IDE 开发工具 git
我是怎么写 Git Commit message 的?
我是怎么写 Git Commit message 的?
58 0