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

  • 时间:
  • 浏览:0
  • 来源:万人红黑大战棋牌APP_万人红黑大战棋牌APP官网

():

// 空一行

// 空一行

PS:下面是全都基础介绍全都大佬请直接查看第二次责

revert: type(scope): some comment

This reverts commit bfe1007ce57d87677c6c473c228e6c2ed8b81dcec.

其中,Header 是必需的,Body 和 Footer 要能 省略

关闭 Issue

全都当前 commit 针对某个issue,不都要能 要能 在 Footer 次责关闭这些 issue (可依次关闭过个issueCloses #123, #245, #992)

在项目目录下运行命令

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

git的提交一般的初学者要能 使用git commit -m "hello world"来提交comment,全都全都像hello world另有有俩个 不都要能 意义的comment我能 无法理解这次的提交到底是为了那此,全都我门就要规范一下comment的规范了。

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

1.4 Revert

还有这些 特殊状况,全都当前 commit 用于撤除 已经 的 commit,则要能 以revert:开头,里边跟着被撤除 Commit 的 Header

Example:

PS D:gitpythonPractice> git log

commit 58a7a966acb9aa2fffc0e02c9ce3be64b8949991 (HEAD -> master)

Author: Zhiwei Tian hebeitianzhiwei@outlook.com

Date: Fri Aug 17 17:38:36 2018 +0100

PS D:gitpythonPractice> git cz

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

commitizen共同要能 检查commit message与非 符合格式.

生成change log,还又全都高级用法比如ghooks

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

全局安装commitizennode模块

npm install -g commitizen

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

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

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

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

1.2 Body 是对本次 commit 的完整描述,要能 分成多行

1.3 Footer 次责只用于这些 状况

不兼容变动

全都当前代码与上另有有俩个 版本不兼容,则 Footer 次责以BREAKING CHANGE开头,里边是对变动的描述、以及变动理由和迁移方法

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

全都当前 commit 与被撤除 的 commit,在同另有有俩个 发布(release)里边,不都要能 它们要能 会出現在 Change log 里边。全都两者在不同的发布,不都要能 当前 commit,会出現在 Change log 的Reverts小标题下面

按照提示,我能 写出规范的message了

idea有插件要能 使用git commit template

1.1 HEAD

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

feat:新功能(feature)

fix:修补bug

docs:文档(documentation)

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

refactor:重构(即要能 新增功能,可是 需要 修改bug的代码变动)

test:增加测试

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

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)

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

此时全都会报找不都要能package.json的错误,使用下面命令来自动生成另有有俩个 项目的package,全都在运行2中的命令.

npm init --yes

feat: A new feature

背景

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