Commitizen和git commit message规范化实践。
按照惯例这里有一篇与git相关的文章。git的提交信息很重要,尤其在多人协作开发大型软件的场景下。本文介绍完整的git commit message应该包括哪些信息,以及如何省心省力地书写这些信息。
git commit message
1 | 一行commit message足矣 |
commit message的写法就像变量的命名方法,应力求简洁准确,清晰明了。具体的commit message格式有不同标准,这里采用Angular规范
一种简单淳朴的方式是手工创建一个纯文本文件.git_commit_message_template
,在这个文件中填写希望每次提交时需要提供的信息,修改~/.gitconfig
文件,在其中加上:
1 | [commit] |
这样每次使用git commit
唤起文本编辑器时,.git_commit_message_template
中的内容会以注释的形式出现在编辑器中作为hints。
这样的方式或许过于简单淳朴,十分懒人不友好。幸运的是,可以通过Commitizen工具实现一定程度的自动化。
AngularJS Git Commit Message Conventions
Angular规范规定的commit message包括三个部分:
- Header:说明提交类别、提交的影响范围和提交的目的
- Body:对本次提交的详细描述
- Footer:产生不兼容变动或关闭issue时写
具体写法可参考这里。
Commitizen
安装Commitizen需要npm
,作者推荐使用nvm
管理node版本。
1 | npm install -g commitizen |
注意安装好后可能要修改.gitignore
文件。
此后提交操作的命令由git commit
变为git cz
。