0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

git commit代码提交规范

技术让梦想更伟大 来源:稀土掘金技术社区 2023-12-19 09:45 次阅读

1、前言

写好git commit提交有什么好处呢?

查看提交的log也非常的优雅,这个就不多提了

方便查找日志记录,通过简单的过滤便能定位到具体想要查找的log

方便问题回溯,通过git log就能查找到当时提交的代码文件,以及修改的代码

其实如果使用过github的release, 可以直接根据feat和fix来过滤提取日志发布版本

接下来我就来实践一下,首先我这里使用的是pnpm安装依赖的。今天主要是在提交代码时稍微自动化一点,并且让提交规范统一一些。

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

2、commitizen插件

pnpmicommitizen-D

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

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

那么接下来直接执行 pnpm git

a64d757e-9e02-11ee-8b88-92fbcf53809c.jpg

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

3、cz-customizable设置提交模板

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

a65df606-9e02-11ee-8b88-92fbcf53809c.jpg

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

4、总结

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

"git":"gitadd.&&gitcz&&gitpush"

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

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 指令
    +关注

    关注

    1

    文章

    606

    浏览量

    35648
  • 源码
    +关注

    关注

    8

    文章

    633

    浏览量

    29136
  • 代码
    +关注

    关注

    30

    文章

    4742

    浏览量

    68333
  • Git
    Git
    +关注

    关注

    0

    文章

    196

    浏览量

    15734

原文标题:天天提交代码,git commit 能规范一下吗?

文章出处:【微信号:技术让梦想更伟大,微信公众号:技术让梦想更伟大】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何使用SSH签名Git提交记录

    Git 支持使用 GPG 来签名提交记录。但 GPG 用起来很复杂,一直赖得搞。
    发表于 06-16 16:21 538次阅读

    git shell 常用命令

    git branch 查看本地所有分支git status 查看当前状态 git commit 提交 g
    发表于 04-16 15:57

    开发者必备的8 个 git 小技巧

    git 已经成为了我日常必备工具之一,我总结我几乎每天使用的8个有用(且简洁)的小技巧。使用-p选择性添加当你想提交内容时,你可以通过使用 git commit -am 来选择所有文件
    发表于 07-05 10:30

    Git 常用命令大全

    status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r 查看本地所有
    发表于 10-11 17:23

    git之推送提交

    下文章:git创建仓库,并提交代码(第一次创建并提交)以及updates were rejected because the tip of your current branch is behind its
    发表于 12-17 09:20

    Git工程实践(一)巧用commit message

    api.#- add xxx api.2.编辑.gitconfig文件,新增.gitmessage模版配置。[commit]template = ~/.gitmessage后续在提交代码时候(使用git
    发表于 05-03 17:30

    如何跟远程仓库一起协作提交代码

    协作,教你们向 GitHub 上提交你们的第一行代码! 1. SSH 你拥有了一个 GitHub 账号之后,就可以自由的 clone 或者下载其他项目,也可以创建自己的项目,但是你没法提交代码。仔细想想也知道,肯定不可能随意就能
    发表于 10-10 11:39 0次下载
    如何跟远程仓库一起协作<b class='flag-5'>提交代码</b>

    教你20分钟搞懂Git

    在上述代码中,在提交时你需要提供提交的描述,而且你可以通过echo "first commit"提供提交描述。
    的头像 发表于 12-12 09:48 3091次阅读

    45个日常用git代码的经典操作场景

    如果你用 git commit -a 提交了一次变化(changes),而你又不确定到底这次提交了哪些内容。你就可以用下面的命令显示当前HEAD上的最近一次的
    的头像 发表于 04-13 10:39 926次阅读

    45个Git经典操作场景

    如果你用 git commit -a 提交了一次变化(changes),而你又不确定到底这次提交了哪些内容。你就可以用下面的命令显示当前HEAD上的最近一次的
    的头像 发表于 01-06 15:29 575次阅读

    Git是怎样的一个系统 Git的工作原理

    执行完成了 git commit 命令,究竟做了什么呢? Git 仓库中的提交记录保存的是你的目录下所有文件的快照,就像是把整个目录复制,然后再粘贴一样,但比复制粘贴优雅许多!
    发表于 02-22 10:41 312次阅读

    git多个commit合并成一个commit

    在使用git做版本管理器的时候,有时候需要将多个commit合并成一个commit,因此这里记录下具体的操作方法,便于查阅。
    的头像 发表于 05-06 15:49 2735次阅读
    <b class='flag-5'>git</b>多个<b class='flag-5'>commit</b>合并成一个<b class='flag-5'>commit</b>

    维持整洁的Git提交记录

    假设我们提交 feature 1.3 的时候,忘记了一个配置文件 config.yaml, 不想修改 log,不想添加新的 commit-id,那下面的这个命令就非常好用了
    的头像 发表于 05-12 16:40 478次阅读
    维持整洁的<b class='flag-5'>Git</b><b class='flag-5'>提交</b>记录

    git rebase和git merge的区别

    "origin"已经有了 2 个提交,如图。 现在我们在这个分支做一些修改,然后生成两个提交(commit)。   $ vi file.txt$ git 
    的头像 发表于 07-05 09:54 618次阅读
    <b class='flag-5'>git</b> rebase和<b class='flag-5'>git</b> merge的区别

    git中如何查看提交历史

    查看提交历史 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。完成这个任务最简单而又有效的工具是 git log 命令。 我们使用一个非常简单的 “simplegi
    的头像 发表于 07-22 11:21 910次阅读
    <b class='flag-5'>git</b>中如何查看<b class='flag-5'>提交</b>历史