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

你正在开发一个项目,它使用 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 提交消息的最佳实践!

jira怎么提交bug_请停止编写糟糕的提交消息!相关推荐

  1. git 原理详解及实用指南_如何编写良好的提交消息:实用的Git指南

    git 原理详解及实用指南 To create a useful revision history, teams should first agree on a commit message conv ...

  2. 独家 | 请停止使用浏览器过程中的不安全行为(附链接)

    作者:Jack Wallen 翻译:吴振东 校对:王紫岳本文约2000字,建议阅读5分钟 本文将会告诉你应该如何安全地使用浏览器,很多平时你不注意的行为可能会导致个人信息.身份.数据和金钱的被窃取,通 ...

  3. 我们知道计算机的大小单位有 B, KB, MB 等,现在请你编写一个计算器进行大小单位换算。Java洛谷传智杯

    题目描述: 我们知道计算机的大小单位有 B, KB, MB 等,现在请你编写一个计算器进行大小单位换算. 输入格式:输入一个字符串,由一个 0 到 1023 之间的整数,一个单位名称(大写字母),一个 ...

  4. 靠加班?靠团建?靠个人?请停止无效努力!

    靠加班?靠团建?靠个人?请停止无效努力! 俗话说,火车跑的快,全凭车头带. 团队当中的管理者,就好比是这火车头. 所以,管理者的方式方法,将会直接影响到团队的运行. 很多时候,一些管理者做着无用功,但 ...

  5. java在线支付---06,07,08_在线支付_编写将数据提交给易宝支付的JSP页面,集成和测试向易宝发送支付请求,实现浏览器自动向易宝发送支付请求

    06_在线支付_编写将数据提交给易宝支付的JSP页面 -------------------------------------------------------------- 1./payment ...

  6. make *** 没有指明目标并且找不到 makefile。 停止。_“关系红利”时代《请停止无效社交》,关键朋友是你的价值选择...

    首先问一个问题,你的微信好友有多少个?常联系的有几个?私下见面的有几个?你真心认可的朋友有几个? 很多人微信几千好友,但当他有什么事时,却发现找不到几个可以诉说的人.可以帮忙的人. 我想起网上一个真实 ...

  7. SVN强制编写注释才能提交,提交中不允许删除文件操作。

    -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 需求: 有些文件被莫名删除,导致项 ...

  8. L1-030 一帮一 (15分) “一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生

    L1-030 一帮一 (15分) "一帮一学习小组"是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组.本题就请你编写程序帮助老师自动完成这个分配工 ...

  9. “一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当前尚未分组的学生中,

    "一帮一学习小组"是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组.本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当 ...

最新文章

  1. Linux安装Hbase并验证
  2. JavaScript时间日期格式转化
  3. 推荐系统笔记(内容推荐)
  4. rhel7.2 mysql_RHEL 7.2 安装 MySQL 5.7.11 二进制版
  5. 【洛谷 2330】繁忙的都市
  6. wps多人协作后怎么保存_蜂蜜开封后能放多久?蜂蜜开封后怎么保存?蜂蜜存放要注意事项...
  7. Linux下MySQL 5.5.11编译安装笔记(待验证)
  8. 【guava】大数据量下的集合过滤—Bloom Filter
  9. linux 端口映射 命令,linux查看端口映射命令
  10. 10个精选国外免费空间
  11. 元宇宙地产演化史:从文本时代到区块链时代
  12. 避免企业IT外包服务风险三大要素
  13. 神经网络是什么,神经网络具体有什么用?
  14. 软考高级 真题 2014年下半年 信息系统项目管理师 综合知识
  15. 二阶常系数偏微分线性变量代换化简
  16. 7-20 简单计算器
  17. 使用 C++ 编写万年历程序
  18. 苹果手机输入法软件测试,苹果手机三款输入法谁更牛?专业媒体评测后给出结果...
  19. errors were encountered while processing qmail qmail-run
  20. 【杂谈】如何找回自己的执行力

热门文章

  1. 含隐变量模型求解——EM算法
  2. web页面加载、解析、渲染过程
  3. C# 正则表达式 匹配IP地址
  4. Windows phone 8 学习笔记(1) 触控输入
  5. ASP.NET MVC5+EF6+EasyUI 后台管理系统(28)-系统小结
  6. 点4下还是点1下?使用jQuery启动一个SharePoint工作流
  7. 对DataGridView中的DataGridViewComboBoxColumn有了一点点体会
  8. [转载] css border-collapse
  9. 利用apache 的PropertyUtilsBean 实现map和pojo相互转换
  10. .eslintrc.js相关配置