git commit 模板配置
Git Log 之痛
在《The Art of Readable Code》这本经典书中,有个形象的比喻,衡量代码可读性的指标是阅读代码时每分钟的 WTF 次数,而在读 Git 提交历史的时候,不知道你有多少次爆粗口?不相信?你现在打开公司演进最快的项目,执行 git log,信息量过少甚至是误导的 commit message 非常常见,比如:
fix=> 这到底是 fix 什么?为什么 fix?怎么 fix 的?
update=> 更新了什么?是为了解决什么问题?
test=> 这个最让人崩溃,难道是为了测试?至于为了测试而去提交一次代码么?
说不定,你在这种 commit message 中也贡献了一份力量呢。
解决问题
commit message包含三个部分,header, body和footer,其中header必须有,body和footer可以按情况省略。
type 字段
- feat:新功能(feature)
- fix:修补bug
- docs:文档(documentation)
- style: 格式(不影响代码运行的变动)
- refactor:重构(即不是新增功能,也不是修改bug的代码变动)
- test:增加测试
- chore:构建过程或辅助工具的变动
也就是写用户会感觉到改变在哪个地方。
subject是 commit 目的的简短描述,不超过50个字符
- 以动词开头,使用第一人称现在时,比如change,而不是changed或changes
- 第一个字母小写
- 结尾不加句号(.)
- 使用第一人称现在时,比如使用change而不是changed或changes。
- 应该说明代码变动的动机,以及与以前行为的对比。
- 如果当前代码与上一个版本不兼容,则 Footer 部分以BREAKING CHANGE开头,后面是对变动的描述、以及变动理由和迁移方法。
- 关闭 Issue
修改git message默认编辑器
说了这么多写作规范,如果有个模板可以直接拷贝,是再好不过的。
使用模板之前,先对git message的默认编辑器做个修改,默认的是
nano
,但这个软件我不会用。用下面的命令,可以把默认编辑器改成
vim
:git config core.editor "vim"
另外,在这里也提供一个提交模板
curl
https://gist.githubusercontent.com/keniushadu/5c7de811bfd77c4cd9c5cd981d401d0d/raw/e048f777bd690767c13544b63f936c1a3219da5e/commit-msg.txt >> ~/.git-commit-template.txt
git config --global commit.template ~/.git-commit-template.txt
【git commit 模板配置】
推荐阅读
- opencv|opencv C++模板匹配的简单实现
- gitlab|gitlab 通过备份还原 admin/runner 500 Internal Server Error
- gitlab|Gitlab升级(12.2.1到14.6.4)
- web网页模板|如此优秀的JS轮播图,写完老师都沉默了
- 常用git命令总结
- 通过复盘快速成长(附模板)
- 圆形菜单
- Git学习-笔记摘要
- [2018-02-22]|[2018-02-22] Git之远程仓库
- 二、Git|二、Git 基础操作