美文网首页工作生活
git提交信息规范

git提交信息规范

作者: SimpleFunc | 来源:发表于2019-06-30 14:39 被阅读0次

2015-01-20 13:00

使用Git时,每次提交代码,都要写 Commit message(提交说明),否则git就不允许提交本次改动。

$ git commit -m "msg"

msg就是提交说明,默认个情况下写什么都行。但是一般情况下,应该简述下本次改动的内容和影响的范围。
目前有多种填写规范,但是使用最广的还是Angular规范

Commit Message 的格式

包括三部分,Header,Body和Footer

<type>(<scope>): <subject>
// 换行
<body>
// 换行
<footer>

Header 是必需的,Body和Footer可以省略。尽量不要让每行超过72个字符,避免显示时换行影响美观。

Header

Header包括三个字段:type(必需)、scope(可选)和subject(必需)

type用来说明本次提交的类型,只能使用以下7种中的一种:

feat:新功能(feature)
fix:修补bug
docs:文档(documentation)
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动

scope用来说明本次改动的影响范围,如业务模块,类,界面等

subject用来简单说明下本次改动,最好不要超过50个字。尽量以第一人称动词开头,结尾不加。好。第一个单词的首字母小写。

Body

Body 是对本次 commit 的详细描述,可以分成多行,如:

.Fix small typo in docs widget (tutorial instructions)
.Fix test for scenario.Application - should remove old iframe
.docs - various doc fixes
.docs - stripping extra new lines
.Replaced double line break with single when text is fetched from Google
.Added support for properties in documentation

body也是用第一人称来书写,应该说明本次提交的动机,以及和之前的对比

Footer

footer只有两种情况需要书写

1.不兼容的改动

若本次改动与上次改动不兼容,则footer应该以BREAKING CHANGE开头,后面加上变动的理由,描述和迁移的方法。如:

Before:

   scope: {
     myAttr: 'attribute',
     myBind: 'bind',
     myExpression: 'expression',
     myEval: 'evaluate',
     myAccessor: 'accessor'
   }

   After:

   scope: {
     myAttr: '@',
     myBind: '@',
     myExpression: '&',
     // myEval - usually not useful, but in cases where the expression is assignable, you can use '='
     myAccessor: '=' // in directive's template change myAccessor() to myAccessor
   }

2.关闭 Issue

若本次改动关闭了某个或多个Issue,那应该在footer中加以描述。如:

Closes #123, #245, #992

特殊状况:

1.Revert

如果当前 commit 用于撤销以前的 commit,则应该以revert:开头,后面跟着被撤销 Commit 的 Header。如;

revert: feat(view): add 'width' option

This reverts commit 667ecc1654a317a13331b17617d973392f415f02.

2.merge branch 和 修改冲突,git 会自动生成 commit msg.忽略就行了

验证

可以使用git hooks来验证commit msg。每次提交的时候都会触发commit-msg的git hook.只需要在.git/hooks下的commit-msg文件中编写校验规则的shell脚本。提交代码的时候会自动执行改脚本,校验commit msg是否符合规范。

git hook还支持python,python支持正则表达式,所以在mac或Linux可以直接使用python和正则表达式来验证commit msg。在windows上也可以,但是需要在windows上先安装python。

validate-commit-msg

validate-commit-msg是一个用来验证commit msg是否合规的脚步,用JS编写。需要配合ghooks使用。比较适合WEB前端开发。具体使用方法参看对应的说明。

相关文章

  • gitflow 规范及工具整理

    gitflow 进阶规范 git cz 通过工具 git-cz 规范 git commit 提交信息。 使用 gi...

  • git提交信息规范

    2015-01-20 13:00 使用Git时,每次提交代码,都要写 Commit message(提交说明),否...

  • 版本库提交信息规范与自动验证

    版本库提交信息规范 以下规范是社区使用最广的 Angular 规范。 一般提交命令我们使用如 git commit...

  • git提交规范

    Git 提交规范 制定一个 git commit 信息的提交规范是开发团队工作流必不可少的环节。试想一下,如果查看...

  • git hooks 检查commit message

    我们有时候想要规范git提交信息,幸好git提供了钩子,我们可以利用这个钩子类检查git 提交信息。只需要如下两个...

  • 深圳大演绎科技 开发人员 Git 使用规范

    深圳大演绎科技 开发人员 Git 使用规范 一、提交规范 1、提交时commit不得为空 2、格式 提交信息包括两...

  • git commit规范

    git commit规范 git-commit规范 在多人协作项目中,如果代码风格统一、代码提交信息的说明准确,那...

  • Git | 提交信息填写规范

    Project 【Project】【重构】大幅度的改动项目的Target和代码结构、文件等; Demand 【De...

  • git 提交信息书写规范

    现在比较流行的方案是约定式提交规范(Conventional Commits),它受到了Angular提交准则的启...

  • iOS 小谈一叙

    一、规范 1) git 提交规范 适当使用git merge / git rebase 2) 代码规范 注意改动别...

网友评论

    本文标题:git提交信息规范

    本文链接:https://www.haomeiwen.com/subject/hukbcctx.html