Commit message 和 Change log 编写指南
上文中详细说明了commit message的详细内容,但我们实际工作的需要,主要说明Header部分的写法。
Header包括三个字段:type、scope和 subject。(scope可选)
git commit -m 'fix: #512 bug'
git commit -m 'feat($login): remember user name'
(1)type
type用于说明 commit 的类别,只允许使用下面7个标识:
- feat : 新功能
- fix : 修补bug
- docs:文档
- style:格式
- refactor:重构
- test : 增加测试
- chore:构建过程或辅助工具的变动
type为feat和fix,该 commit 将出现在 Change log 之中。其他标识可选。
(2)scope
scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。
(3)subject
subject是 commit 目的的简短描述,不超过50个字符。
//以动词开头,使用第一人称现在时,比如change,而不是changed或changes
//第一个字母小写
//结尾不加句号(.)
上面的只是一种规范,有工具可以很好的生成commit log,但不遵循也能够提交。但有规范的清晰明了的commit message既便于浏览和查找以及生成commit log,同时也是 一种良好的习惯。
另外很重要的一点是:
当我们执行commit命令之后发现有文件未添加或是commit message书写有错误,如果还未push到远端,那么可以使用下面方法进行处理。如果已经push到远端,那么其就无法被修改。
//添加未被添加到暂存区的文件
//然后使用--amend
git add [filename]
git commit --amend
//会自动加上已经修改但未被添加到暂存区的文件
git commit --amend -a
执行后可看到类似下图的结果,可直接修改信息并回车保存
也可使用reset恢复版本,然后重新提交。