Git Commit Log优雅的提交方式
本文的完成参考于思否的文章,感谢原作者和阮一峰老师提供的思路。
现在团队开发新项目改用gitlab进行托管,每次进行git commit的时候都很苦恼于写什么信息,于是打算按照前人总结的经验进行规范一下信息。
书写规范
书写规范如下:
<type>: <subject>
<body>
type
提交commit的类型包含以下几种:
- feat: 新功能
- fix: 修复问题
- docs: 修改文档
- style: 修改代码格式,不影响代码逻辑
- refactor: 重构代码,理论上不影响现有功能
- perf: 提升性能
- test: 增加修改测试用例
- revert: 回退,建议直接使用Github Desktop回退,而不是使用命令
subject
书写要遵循以下四种规则:格式尽量使用谓宾,使用谓宾不通顺时,可以使用主谓。具体来讲就是新增某某功能、修改某某代码等。
- 除了名称之外,描述尽可能使用中文,方便不同开发者理解
- 结尾不加句号
- 描述控制在20个汉字以内
body
对本地提交的详细描述,不建议。我们建议多次少量提交,而不是一次巨量的提交,有助于revert
和code review
,也对灾难存储有容灾。
工具
这里的工具使用commitizen
。
首先进行安装,步骤如下:
cd your-project
npm install commitizen --save-dev
commitizen init cz-conventional-changelog --save --save-exact
等你的项目有改动之后:
git add . //注意后面加上.
git cz
你会发现这里的cz
替代了commit
命令。如果提示Cannot find module '/Users/Chuck/党建积分/node_modules/cz-conventional-changelog'
(这里的路径因人而异),这就需要在package.json
修改commitizen
的路径。等没有任何问题的时候,提交页面会如下所示:
通过上下箭头的选择并输入相应的信息后,一路回车即可。下面是成功提交信息的页面:
在命令行敲入命令git log
就可看到所有的提交信息,从下图可以看到最终提交的信息格式是:style: 这里是输入提交信息的地方
。
通过这样的方式来描写提交信息,清晰明了,也方便以后通过详细的信息定位问题或回滚代码。
总结
总的来看,采用工具进行提交更加规范,也不容易出错。只需要选择好类型并输入信息就可以了。美中不足的地方就是,不能通过命令行对某个文件的修改进行提交,只能将所有的修改统一进行提交(不过也有可能可以,只是我暂时不知道,希望知道的同学告知一下)。