良许Linux教程网 干货合集 天天提交代码,git commit 能规范一下吗?

天天提交代码,git commit 能规范一下吗?

1. 前言

对于git commit提交而言,有哪些好处呢?

  • 首先,提交的日志非常清晰易读,这一点无需多言。
  • 其次,方便查找日志记录,通过简单的过滤就能准确定位到所需的提交记录。
  • 另外,便于问题回溯,通过git log命令可以追踪到先前提交的代码文件以及修改的代码内容。
  • 实际上,如果你曾经使用过GitHub的发布功能,可以根据feat和fix标签来过滤和提取日志,以发布版本。

接下来,我将进行实践演示。首先,我使用了pnpm作为依赖管理工具。今天的主要目标是让代码提交过程更加自动化,并确保提交规范统一。

具体操作的源码项目为 github.com/aehyok/taro…[1]

2、commitizen插件

pnpm i commitizen -D 

此时我们先 git add .,然后就可以使用一下 git cz,所以现在可以直接在package.json中添加一个scripts

// && 代表`git add .和 `git cz` 两个指令串行执行,
// 先执行前一个,执行完后再执行后一个
"git""git add . && git cz"

那么接下来直接执行 pnpm git

image-20240103200854186
image-20240103200854186

输入commit的提交信息,保存,关闭小窗,因为我这里用的是gitExtensions图形操作程序,随后git push提交即可,但是这样其实只是换了一个命令而已,并没有什么实质性的改变。那接下来就让它改变一下吧

3、cz-customizable设置提交模板

pnpm i cz-customizable -D

安装完之后在package.json中添加如下节点

 "config": {
    "commitizen": {
      "path""node_modules/cz-customizable"
    }
  },

同时可以再根目录创建.cz-config.js,这里有一份官网提供的模板 github.com/leoforfree/…[2]

下面这个是我自己修改后的提交模板

module.exports = {
  // type 类型(定义之后,可通过上下键选择)
  types: [
    { value: 'feat', name: 'feat:     新增功能' },
    { value: 'fix', name: 'fix:      修复 bug' },
    { value: 'docs', name: 'docs:     文档变更' },
    {
      value: 'style',
      name: 'style:    代码格式(不影响功能,例如空格、分号等格式修正)'
    },
    {
      value: 'refactor',
      name: 'refactor: 代码重构(不包括 bug 修复、功能新增)'
    },
    { value: 'perf', name: 'perf:     性能优化' },
    { value: 'chore', name: 'chore:     其他修改, 比如构建流程, 依赖管理、版本好修正.' }
  ],

  // scope 类型(定义之后,可通过上下键选择)
  scopes: [
    ['components''组件相关'],
    ['hooks''hook 相关'],
    ['utils''utils 相关'],
    ['element-ui''对 element-ui 的调整'],
    ['styles''样式相关'],
    ['deps''项目依赖'],
    ['auth''对 auth 修改'],
    ['other''其他修改'],
    // 如果选择 custom,后面会让你再输入一个自定义的 scope。也可以不设置此项,把后面的 allowCustomScopes 设置为 true
    ['custom''以上都不是?我要自定义']
  ].map(([value, description]) => {
    return {
      value,
      name: `${value.padEnd(30)} (${description})`
    }
  }),

  // 是否允许自定义填写 scope,在 scope 选择的时候,会有 empty 和 custom 可以选择。
  // allowCustomScopes: true,

  // allowTicketNumber: false,
  // isTicketNumberRequired: false,
  // ticketNumberPrefix: 'TICKET-',
  // ticketNumberRegExp: '\\d{1,5}',

  // 针对每一个 type 去定义对应的 scopes,例如 fix
  /*
    scopeOverrides: {
      fix: [
        { name: 'merge' },
        { name: 'style' },
        { name: 'e2eTest' },
        { name: 'unitTest' }
      ]
    },
    */

  // 交互提示信息
  messages: {
    type'确保本次提交遵循:前端代码规范!\n选择你要提交的类型:',
    scope: '\n选择一个 scope(可选):',
    // 选择 scope: custom 时会出下面的提示
    customScope: '请输入自定义的 scope:',
    subject: '填写简短精炼的变更描述:\n',
    body: '填写更加详细的变更描述(可选)。使用 "|" 换行:\n',
    breaking: '列举非兼容性重大的变更(可选):\n',
    footer: '列举出所有变更的 ISSUES CLOSED(可选)。例如: #31, #34:\n',
    confirmCommit: '确认提交?'
  },

  // 设置只有 type 选择了 feat 或 fix,才询问 breaking message
  allowBreakingChanges: ['feat''fix'],

  // 跳过要询问的步骤
  skipQuestions: ['scope''body''breaking''footer'],

  subjectLimit: 100, // subject 限制长度
  breaklineChar: '|' // 换行符,支持 body 和 footer
  // footerPrefix : 'ISSUES CLOSED:'
  // askForBreakingChangeFirst : true,
}

运行 pnpm git

image-20240103200858797
image-20240103200858797

根据指引提示,然后输入提交信息,推送到服务器就完成了,查看git log可以发现

image-20240103200901607
image-20240103200901607

4、总结

其实还可以将脚本修改一下

"git""git add . && git cz && git push"

这样三个指令会串行执行,一个接着一个执行,如果提交没什么问题的话,很自然就推送到远端了。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部