怎么创建一个良好的Git提交信息

   原文:https://dev.to/chrissiemhrk/git-commit-message-5e21

在这里插入图片描述

提交信息是对提交之前添加和更改的文件所做的更改的简短描述。

良好的提交信息不仅对你所参与的项目上其它的团队成员很重要,对你自己而言也很重要,你需要跟踪所有提交,并确切知道在提交期间发生的变动。

即使你开发的是个人项目,我也建议你开始养成编写良好的提交信息的习惯。

这是我惯用的格式(可以随着你的个人习惯和公司来改变):

type: subject

body (可选)

footer (可选)

1. Type

  • feat :新功能
  • fix : bug修复
  • docs :文档变更
  • style :与样式相关的所有变动
  • refactor :既不是bug修复也未添加功能的代码更改
  • test :与测试有关所有变动
  • chore :改变了构建任务,程序包管理器配置等

2. Subject

它应该包含对所做更改的简短描述。长度不能超过50个字符,应以大写字母开头,命令式的语法。“Add”,而不是 “Added” 或 “Adds”。


3. Body

正文用于说明你进行了哪些更改以及进行更改的原因。并非所有提交都很复杂,需要一个正文,尤其是如果你仅是开发一个个人的项目,因此正文是可选的。


4. Footer

页脚也是可选的,主要在你使用issue追踪引用issue ID时使用。


这是Udacity学生git 提交信息的例子Udacity Git Commit Message Style Guide

feat: 少于50个字符的更改概括。

如有必要,提供更详细的说明文字,约72字符左右。在某些情况下,第一行被视为提交的主题,其余文本作为正文。 将摘要与正文分开的空行至关重要(除非没有正文);各种工具,例如 log,shortlog和rebase,如果同时运行两者,可能会造成混乱。

解释该提交解决的问题。注意说明为什么做这个更改(代码作了注释)。另一方面,是否会导致负面的作用或其他不直观的后果?这也是需要说明的地方。

空白行之后是其它段落。

- 项目要点也可以加进来
- 通常在项目符号前使用连字符或星号,用一个空格隔开,中间有空白行,但是约定在这里变化

如果你使用issue追踪,可以在footer中写上对issue的关联,就像这样:

Resolves: #123See
also: #456, #789

这是一个实际的例子:

docs: Fix typo in README.md


正文之外同样有一些有意思的评论(歪果仁会玩啊):

简短明了,感谢你的这篇文章!
我倾向于使用表情符号作为类型——一看就显示了提交的类型,例如:

➕:heavy_plus_sign: 添加文件或实现功能时
🔨: hammer: 修复bug或处理issue时
💚 :green_heart: 在改进代码或注释时
⚡:zap: 在提高性能时
📜:scroll: 更新文档或readme时
🔑:key: 在处理安全相关时
🔁 :repeat: 更新依赖或数据时
✅:white_check_mark: 建立一个新的release时
👕:shirt: 重构或删除linter警告时
❌:x: 删除代码或文件时

...提交历史看起来很棒:

在这里插入图片描述



我讨厌别人这么做。它在git日志中看起来令人困惑。只需使用unicode表情符号,它们就可以在任何地方使用。

顺便说一下,我最喜欢的表情符号用于提交信息:🎆🎊🎉😖💢😅 (我通常将它们放在提交信息的末尾)



我目前使用git alias创建带有表情符号的漂亮提交消息,我的提交信息结构如下:

[emoji] <type>(scope): <message>

例如:

🐞 FIX(pages): security issue fix on pages table

这是我的.gitconfig

# Git Commit, Add all and Push — in one step.
cap = "!f() { git commit -m \"$@\"; }; f"
# NEW.
new = "!f() { git cap \"📦 NEW($1): $2\"; }; f"
# IMPROVE.
imp = "!f() { git cap \"👌 IMPROVE($1): $2\"; }; f"
# UPDATE.
up = "!f() { git cap \"✍🏻 UPDATE($1): $2\"; }; f"
# FIX.
fix = "!f() { git cap \"🐞 FIX($1): $2\"; }; f"
# RELEASE.
rlz = "!f() { git cap \"🚀 RELEASE($1): $2\"; }; f"
# DOC.
doc = "!f() { git cap \"📖 DOC($1): $2\"; }; f"
# TEST.
tst = "!f() { git cap \"🤖 TEST($1): $2\"; }; f"
# BREAKING CHANGE.
brk = "!f() { git cap \"‼️ BREAKING CHANGES($1): $2\"; }; f"
# REMOVE
remove = "!f() { git cap \"🗑 REMOVE($1): $2\"; }; f"
# REFACTOR
ref = "!f() { git cap \"♻️ REFACTOR($1): $2\"; }; f"
# INITIAL COMMIT
int = "!f() { git cap \"🎉 INITIAL COMMIT($1): $2\"; }; f"


感谢你的提议!

这是Git表情符号的一个网站:https://gitmoji.carloscuesta.me/

在这里插入图片描述

🎉 :tada:初次提交
🚀 :rocket:[Add] 实现新功能时
🔨 :hammer:[Fix]修复bug或处理issue时
🎨 :art:[Refactor] 当重构/改善代码时
🚧 :construction: [WIP]
📝 :pencil: [Minor] 一些小更新



大家可以使用随机提交信息生成网站。享受它吧!

https://paulospx.github.io/some_if_statements/commits.html

在这里插入图片描述

posted @ 2020-08-22 21:08  三分恶  阅读(838)  评论(1编辑  收藏  举报