你可能已经忽略的git commit规范

如题所述

在日常的开发工作中,我们通常使用 git 来管理代码,当对代码进行改动后,通过 git commit 来提交代码。git 规定提交时必须书写提交信息,作为改动说明,保存在 commit 历史中,方便回溯。规范的 log 不仅有助于他人审核,还可以有效输出 CHANGELOG,提升项目的研发质量。然而,大部分开发者在日常工作中对于 log 信息的书写过于简单,这对于项目的管理和维护来说是不友好的。本文旨在结合个人经验分享 git commit 的一些规范,使你的 log 既“好看”又“实用”。

为什么要规范 git commit?让我们先看看一个不太规范的 commit 记录,看完有什么感觉?这种 commit 信息对于想要从中获取有效信息的人来说无疑是一种致命的打击。相反,社区内流行的 Angular 规范的 commit 记录则一目了然,提供了更多历史信息,方便快速浏览,同时可以过滤某些 commit(如文档改动),便于快速查找信息。

Angular 团队的 commit 规范具体是什么?它的 message 格式分为 Header、Body 和 Footer 三个部分。Header 部分包括 type(必需)、scope(可选)和 subject(必需)三个字段,Body 对本次 commit 修改内容进行具体描述,Footer 用于添加备注,如 BREAKING CHANGE(当前代码与上一个版本不兼容)或修复的 bug(关闭 Issue)的链接。

了解完规范,我们接下来讨论 git 提交信息模板。如果你的团队对提交信息有格式要求,可以在系统上创建一个文件作为模板,并配置 git 以遵循此模板。通过以下命令配置提交信息模板:新建.gitmessage.txt,内容如下。配置下来虽然可能觉得有些麻烦,但建立适合自己和团队使用的 git commit 规范并非易事。社区提供了辅助工具来帮助进行提交,下面将简单介绍这些工具。

commitizen(cz-cli)是一款交互式建立提交信息的工具,帮助从 type 开始逐步构建提交信息。commitlint 是一个提交验证工具,在实际的 git commit 提交到远程仓库之前使用 git 钩子验证信息,不满足规则的信息将被阻止提交。通过安装和配置,可以使用 commitlint 验证 commit message,确保其符合标准。commitizen 与 commitlint 可以根据不同的 adapter 配置 commit message,例如使用 Angular 的 commit message 格式,可以安装 cz-conventional-changelog。为了在每次 commit 时执行 commitlint 检查输入的 message,需要使用 husky 工具。

gitmoji 是一个实现 git 提交 commit 使用表情包功能的插件,使每次的 commit 更加直观,维护起来更方便。gitmoji 的使用非常简单,通过官方示例可以轻松上手。在项目中应用这些工具和规范,将使你的 git commit 更加规范,同时别忘了在 log 中加上 emoji,使沟通更加有趣。

最后,希望你能在项目中运用这些技巧,提高代码管理的效率和质量。同时,关注公众号【前端森林】,获取更多大前端相关的前沿文章和实战总结。以下是之前项目针对 git commit 配置的 package.json 示例,供参考。
温馨提示:内容为网友见解,仅供参考
无其他回答

你可能已经忽略的git commit规范
gitmoji 是一个实现 git 提交 commit 使用表情包功能的插件,使每次的 commit 更加直观,维护起来更方便。gitmoji 的使用非常简单,通过官方示例可以轻松上手。在项目中应用这些工具和规范,将使你的 git commit 更加规范,同时别忘了在 log 中加上 emoji,使沟通更加有趣。最后,希望你能在项目中运用...

Git 不要只会 pull 和 push,试试这 5 条提高效率的命令
对于已经 push 的 commit,也可以使用该命令,不过再次 push 时,由于远程分支和本地分支有差异,需要强制推送 git push -f 来覆盖被 reset 的 commit。 还有一点需要注意,在 reset --soft 指定 commit 号时,会将该 commit 到最近一次 commit 的所有修改内容全部恢复,而不是只针对该 commit。 举个例子: commit ...

如何在Git中撤销一切
场景:你只是在最后的提交信息中敲错了字,比如你敲了git commit -m "Fxies bug #42",而在执行git push之前你已经意识到你应该敲"Fixes bug #42"。使用撤销命令:git commit –amend或git commit --amend -m "Fixes bug #42"发生了什么:git commit –amend将使用一个包含了刚刚错误提交所有变更的新提交,来...

如何还原一个已经同步到远程仓库的Commit
non-fastforward push)。如果你在本地已经处于master分支下了,你也可以通过两个简单的步骤来实现同样的效果:先回退到父Commit,然后强制推送给远程仓库。git reset HEAD^ --hard git push mathnet -f 情形2:删除倒数第二个Commit 现在我们假设需要删除的Commit没有在历史记录的顶部,而是一个稍旧一...

如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件
.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:输入:git rm -r –cached filePath git commit -m “remove xx”或者:git rm -r –cached .git add .git ...

git commit命令是做什么用的?
git commit 命令的-a 选项可只将所有被修改或者已删除的且已经被git管理的文档提交倒仓库中。如果只是修改或者删除了已被Git 管理的文档,是没必要使用git add 命令的。git add .命令除了能够判断出当前目录(包括其子目录)所有被修改或者已删除的文档,还能判断用户所添加的新文档,并将其信息追加到...

【全网独家】SVN实现和Git .gitignore一样的全局忽略文件和文件夹_百度...
如果日后需要调整这个全局忽略设置,只需回到 TortoiseSVN 的 "Properties" 对话框,点击 "Edit" 按钮,轻松修改 SVN 全局忽略规则即可。这个功能虽然看似低调,却能极大提升你的开发效率,让你的 SVN 管理和 Git 如出一辙,只是知道的人可能还不多。通过这些简单的步骤,你已经掌握了 SVN 全局忽略文件...

轻松学习git:git后悔药(满足日常开发中各种恢复)
1. 完成 git commit xxx.java 后,若后悔提交,应如何撤销?2. 一旦回滚版本后又想恢复,如何操作?3. 执行了 git add *,但不希望提交配置文件,有何解决策略?4. 文件尚未添加到暂存区,想恢复到修改前的状态,如何操作?接下来,我们将深入解析这些场景:假设你已经理解git的工作流程(如果还不...

怎样让Git忽略当前已经更改的文件
不能忽略,加入.gitignore文件,只是针对多数情况下不需要监视的文件,比如*.bak 你可能只是要取消更新,直接git co -- xxxx 恢复上一个版本就是。

使用git提交文件
当出现如下图所示的时候,说明我们的第一步初始化已经成功了:这个时候,在我们新建的文件夹里会出现一个.git的文件,有时候可能被隐藏了,需要我们把文件把文件显示出来。这个时候,就在里面放置我们需要传的项目文件 结果图如下:这个时候,文件就入库了,如果你不信,可以通过如下命令查看入库的状态:...

相似回答
大家正在搜