Git Commit的规范及高级使用方法

git commit是日常工作中使用率极高的一个命令,但是根据我从业5年的经验来看,大多数人在用git commit命令时都很粗糙,比如git commit -m 后跟的message是五花八门,有用中文的,有用英文的,甚至还有直接跟111的,这些commit,不要说接手的人很难看懂,时间久了估计连提交人自己都忘记咋回事了。

本文我就带大家了解下git commit有哪些规范及高级用法。

咱们先了解一下规范的commit能带来哪些好处

  • 能够让自己和协同自己开发的人员清晰的知道每个commit 的变更内容,方便快速浏览变更历史
  • 可以基于commit的信息进行过滤查找,比如之查找某个版本新增的功能:
git log --oneline --grep "^feat|^fix|^perf"
  • 可以基于规范化的commit生成Change Log
  • 可以根据某些类型的commit 触发构建或者发布流程,比如当type类型为feat、fix时我们才触发CI流程

总之,一个好的commit可以使commit的可读性更好,并且可以实现自动化,那究竟该如何写一个易读的commit呢?

Commit 的规范

commit的规范其实在开源社区中已经很成熟了,大家可以看看GitHub上start数量比较多的开源项目,看下别人的commit信息都是怎么规范的。

这里我们以Docker的commit记录来举例:

 请大家注意我在图中圈红的地方,可以看到每一个commit的最前面,都有一个类似于本次commit类型的说明,是新功能发布(feat),还是文档更新(chore),又或是bug修复(fixbug),都会有一个对应的标识放在commit的最前边,熟悉规范的同事一眼就能看出哪些commit对他来说是有用的。

那我们应该怎么写出规范的commit呢?

我们先来说commit的类型:

类型 说明
feat 新增功能
fix bug修复
perf 性能优化
style 代码格式化
test 测试用例的新增或更新
ci 部署相关文件的改动
docs 文档类的变动
chore 其他类型
refactor 代码简化、删除冗余代码等

我每次在commit的时候,在commit信息前边加上这些类型标识,是不是一下子就清晰起来了,我们在进行git log查询的时候也不需要一个一个去翻了,可以直接根据type筛选出我们最需要的commit记录,效率噶一下就上来了。

猜你喜欢

转载自blog.csdn.net/Attitude_do_it/article/details/131558823