Git提交规范

73 阅读2分钟

提交类型

  • feat: 新增feature
  • fix: 修复bug
  • docs: 仅仅修改了文档,比如README, CHANGELOG, CONTRIBUTE等等
  • style: 仅仅修改了空格、格式缩进、都好等等,不改变代码逻辑
  • refactor: 代码重构,没有加新功能或者修复bug
  • perf: 优化相关,比如提升性能、体验
  • test: 测试用例,包括单元测试、集成测试等
  • chore: 改变构建流程、或者增加依赖库、工具等
  • revert: 回滚到上一个版本

使用工具自动生成CHANGELOG

npm i conventional-changelog -D
// 命令
conventional-changelog -p angular -i CHANGELOG.md -s -r o

查看命令

npx conventional-changelog --help

 -i, --infile              Read the CHANGELOG from this file
 -o, --outfile             Write the CHANGELOG to this file
                           If unspecified, it prints to stdout
-s, --same-file           Outputting to the infile so you don't need to specify the same file as outfile

-p, --preset              Name of the preset you want to use. Must be one of the following:
                              angular, atom, codemirror, conventionalcommits, ember, eslint, express, jquery or jshint

-k, --pkg                 A filepath of where your package.json is located
                              Default is the closest package.json from cwd

-a, --append              Should the newer release be appended to the older release
                              Default: false

-r, --release-count       How many releases to be generated from the latest
                              If 0, the whole changelog will be regenerated and the outfile will be overwritten
                              Default: 1

--skip-unstable           If given, unstable tags will be skipped, e.g., x.x.x-alpha.1, x.x.x-rc.2

-u, --output-unreleased   Output unreleased changelog

-v, --verbose             Verbose output. Use this for debugging
                              Default: false

-n, --config              A filepath of your config script
                              Example of a config script: https://github.com/conventional-changelog/conventional-changelog/blob/master/packages/conventional-changelog-cli/test/fixtures/config.js

-c, --context             A filepath of a json that is used to define template variables
-l, --lerna-package       Generate a changelog for a specific lerna package (:pkg-name@1.0.0)
-t, --tag-prefix          Tag prefix to consider when reading the tags
    --commit-path             Generate a changelog scoped to a specific directory

自动增加版本号

npm version [patch|minor|major]

自动化工具库

上述执行略繁琐,更快捷的也是官方推荐的是standard-version。

standard-version

npm i standard-version -D

开发、提交代码。执行standard-version。

git撤销方式

如果提交到了本地还没提交到远端

git reset HEAD~N N代表前几次

如果提交到了远端使用git revert

git revert HEAD~ 撤销上次远端
git revert HEAD~2..HEAD 撤销前两次远端提交 HEAD可替换成commitid

附录

github.com/conventiona…

github.com/conventiona…