Git生态探索之Commit message 和 Change log 编写最佳实践

  • 时间:
  • 浏览:0
  • 来源:万人炸金花IOS_万人炸金花APP下载

PS:下面是有些基础介绍可能性大佬请直接查看第二偏离

feat: A new feature

现在项目中可能性多出来dir:node_nodules, file:package.json, package-lock.json这一 目录和文件,这是node安装模块产生的,可能性也有node项目都可不都可以 忽略掉,熟悉node的同学肯定都知道这一 是有用的了.

? Select the type of change that you're committing: (Use arrow keys)

():

// 空一行

// 空一行

fix: A bug fix

docs: Documentation only changes

style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)

refactor: A code change that neither fixes a bug nor adds a feature

perf: A code change that improves performance

test: Adding missing tests or correcting existing tests

(Move up and down to reveal more choices)

全局安装commitizennode模块

npm install -g commitizen

Line 1 will be cropped at 60 characters. All other lines will be wrapped after 60 characters.

Example:

PS D:gitpythonPractice> git log

commit 58a7a966acb9aa2fffc0e02c9ce3be64b8949991 (HEAD -> master)

Author: Zhiwei Tian hebeitianzhiwei@outlook.com

Date: Fri Aug 17 17:38:36 2018 +060 0

Body偏离 的格式是固定的,都要写成This reverts commit <hash>.,其中的hash是被撤除 commit 的 HSHA 标识符。

可能性当前 commit 与被撤除的 commit,在同原本发布(release)中间,越来越它们也有会跳出在 Change log 中间。可能性两者在不同的发布,越来越当前 commit,会跳出在 Change log 的Reverts小标题下面

其中,Header 是必需的,Body 和 Footer 可不都可以 省略

revert: type(scope): some comment

This reverts commit bfe60 7ce57d87677c6c473c228e6c2ed8b81dcec.

commitizen同去可不都可以 检查commit message有无符合格式.

生成change log,还又有些高级用法比如ghooks

这里就不细说了.详细请查看参考链接和validate-commit-msg

1.1 HEAD

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

feat:新功能(feature)

fix:修补bug

docs:文档(documentation)

style: 格式(不影响代码运行的变动)

refactor:重构(即也有新增功能,全都是修改bug的代码变动)

test:增加测试

chore:构建过程或辅助工具的变动

在项目目录下运行命令

commitizen init cz-conventional-changelog --save --save-exact

此时可能性会报找可不都可以 package.json的错误,使用下面命令来自动生成原本项目的package,否则在运行2中的命令.

npm init --yes

1.4 Revert

还有有一种特殊情況,可能性当前 commit 用于撤除过后的 commit,则都要以revert:开头,中间跟着被撤除 Commit 的 Header

PS D:gitpythonPractice> git cz

cz-cli@2.10.1, cz-conventional-changelog@2.1.0

按照提示,否则你写出规范的message了

idea有插件可不都可以 使用git commit template

运行完以上一律使用git cz 代替git commit来提交代码,同总要显示一下选项来自动生成符合格式的commit message.

scope 用来说明本次Commit影响的范围,即简要说明修改会涉及的偏离 ,比如数据层、控制层、视图层等,

subjectcomment所在的位置,这次提交的简短描述

1.2 Body 是对本次 commit 的详细描述,可不都可以 分成多行

1.3 Footer 偏离 只用于有一种情況

不兼容变动

可能性当前代码与上原本版本不兼容,则 Footer 偏离 以BREAKING CHANGE开头,中间是对变动的描述、以及变动理由和迁移法律方法

git的提交一般的初学者总要使用git commit -m "hello world"来提交comment,否则有些像hello world原本越来越意义的comment否则你无法理解这次的提交到底是为了这一 ,全都大伙就要规范一下comment的规范了。

关闭 Issue

可能性当前 commit 针对某个issue,越来越可不都可以 在 Footer 偏离 关闭这一 issue (可依次关闭过个issueCloses #123, #245, #992)

背景

最近在学习规范怎么都可以 使用git来更高效的开发,发现原本比较好用的来规范comment的工具,全都想来记录一下。一般来说,commit message 应该清晰明了,说明本次提交的目的。全都都要有些规范来使这一 comment变得可读,commitizen则是最近发现的一款比较易用的工具。