专栏首页武培轩的专栏请停止编写糟糕的提交消息!

请停止编写糟糕的提交消息!

我想大家都有过这样的经历:

你正在开发一个项目,它使用 Git 进行版本控制。

你刚刚完成更改,并且想要快速更新分支。

因此,你打开了终端,并通过一些快速命令,使用所做的更改来更新远程分支。

git add .
git commit -m "added new feature"
git push

但是随后你进行了一些测试,发现你的代码中存在 bug。

不用担心,你可以快速找到解决方案,并再次提交以解决该问题。

git add .
git commit -m "fix bug"
git push

你重复此过程几次,现在最终得到一个 git commit 日志,如下所示:

目前,这对你来说似乎还不错,毕竟,你目前正在处理该部分代码,即使提交的信息不能传达你更改的意图,你仍然可以轻松地解释进行了哪些处理。

问题

几个月过去了,现在,另一个开发人员正在回顾你所做的更改。

他们试图理解你所做更改的细节,但是由于你提交的消息不是描述性的,因此他们无法获取任何信息。

然后,他们尝试去查看每个提交的差异。但是,即使这样做了,他们仍然无法确定你在实现中选择的背后的思考过程。

因此他们可以使用 git blame 找出是谁进行了这些更改,并开始向你询问有关实现的问题。

但是,由于时间已经过去很久了,所以你不会记得太多。你通过提交进行检查,而你不再记得该项目中执行决策背后的逻辑。

最终,你在微信上向同事发送了悲伤的表情符号 ?,并告诉他们你不能提供除他们知道以外的更多信息。

编写良好的提交信息

希望以上情况已经让你明白了为什么编写良好的 git commit 消息很重要。

在团队开发中,我们必须使其他协作者能够轻松地理解我们做了什么工作。

理想情况下,良好的提交消息将被分为三部分:主题,正文和结尾。

主题

主题应该是简洁的一行,总结你所提交的更改。

下面例举一个很好的提交信息,例如“feature:查询项目应用率功能”。

一个错误的提交消息,例如“fix bug”,在其他人看到这条提交信息的时候就会不知所措。

正文

正文包含你要传达的信息,你可以在其中详细了解有关更改的信息。请注意,对于一些很小的提交,例如修正错字,你可能不需要正文,因为主题行应该足够有信息性。

在正文中,你应该深入了解正在进行的更改,并说明正在执行的操作的前因后果。

你可以解释为什么要进行这些更改,为什么要选择以这种特定方式实施更改以及可以帮助人们理解你的提交背后的思维过程的其他任何原因。

尽量不要重复比较代码中显而易见的事情,无需逐行解释你的更改,专注于覆盖更多高级细节,这些细节从阅读代码中可能并不明显。最终目标是围绕此更改为开发过程提供上下文,该更改主要涉及其原因和目标。

结尾

你可以在最后一行写有关提交有用的元数据,例如 JIRA 票号,作者名字和附加链接。

这有助于将与你的变更相关的重要信息连接在一起。

总结

还等什么?等着被同事暴揍吗?那还不赶紧开始遵循有关 Git 提交消息的最佳实践!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 看完这篇还不会用Git,那我就哭了!

    Git 是一个版本控制系统,是任何软件开发项目中的主要内容。通常有两个主要用途:代码备份和代码版本控制。你可以逐步处理代码,在需要回滚到备份副本的过程中保存每一...

    武培轩
  • 排序算法-希尔排序

    上一篇讲解了简单插入排序算法,以及在其基础上优化的二分插入排序算法,但是每次插入需要按间隔为 1 移动有序区的元素,效率不高,下面我们来介绍一种新的插入排序算法...

    武培轩
  • 剑指Offer-孩子们的游戏(圆圈中最后剩下的数)

    package Other; import java.util.LinkedList; /** * 孩子们的游戏(圆圈中最后剩下的数) * 每年六一儿童...

    武培轩
  • Git提交信息规范Git Commit Message

    目前规范使用较多的是引用或衍生  Github Angular开发中<提交信息准则>章节(Commit Message Guidelines).以下为规范译文:

    gigiwangs
  • Git示例教程 - 撤销上次提交

    如果我们想撤销上次提交,并且丢弃上次提交修改的内容,可以用另外一条reset命令,这个就不在这里演示了,有兴趣的同学可以自己试下。

    wangyuntao
  • Hexo 博客部署到腾讯云教程

    行走少年郎
  • 备忘下:如何给chromium提交patch

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 因为工作的原因,需要给chromium提些patc...

    龙泉寺扫地僧
  • git问题场景和log颜色查看

    正常我们使用git,比如git add ,git commit , git push这些完成个人的代码暂存、修改、提交和推送操作。

    mariolu
  • git 入门教程之撤销更改 原

    相信你已经了解了 git 的基本概念,也清楚了工作区,暂存区和版本库的关系,现在让我们用所学的知识继解决实际问题吧!

    雪之梦技术驿站
  • 中间人攻击,HTTPS也可以被碾压

    中间人攻击(man-in-the-middle attack, abbreviated to MITM),简单的讲,就是黑客悄悄的躲在通信双方之间,窃听甚至篡改...

    Fundebug

扫码关注云+社区

领取腾讯云代金券