git
› Pro Git
› Atlassian Git Tutorial
› Pro Git 简体中文翻译
› GitX
usboy
V2EX  ›  git

为什么我选择使用约定式提交规范: feat, doc, chore, fix

  •  1
     
  •   usboy · Mar 13, 2024 · 6583 views
    This topic created in 965 days ago, the information mentioned may be changed or developed.

    使用约定式提交规范可以让代码的提交信息更明确,方便团队成员之间的沟通。

    比如:

    • feat 表示添加了新的功能
    • doc 表示更新了文档
    • chore 表示做了一些日常的事务
    • fix 表示解决了某个 bug 。

    我个人认为,使用约定式提交规范可以提高代码的可读性和维护性,你们常用的提交规范有哪些?

    Supplement 1  ·  Mar 13, 2024
    分享两个实用的:

    - 各大编辑器插件市场搜索“ai commit 或者 git commit”
    - 开发人员必备的备忘单: [https://cheatsheets.zip/conventional-commits]( https://cheatsheets.zip/conventional-commits)
    Supplement 2  ·  Mar 13, 2024

    补充Markdown格式的备忘单链接:https://cheatsheets.zip/conventional-commits

    43 replies  •  2024-03-14 08:19:34 +08:00
    Harold2Finch
    Harold2Finch
    Mar 13, 2024
    1
    我用 idea 里面的一个插件 Git Commit Template 。除了你列的这几个还有很多别的
    NessajCN
    NessajCN
    Mar 13, 2024
    2
    因为用 close/fix/resolve 可以在相关 issue 里直接显示
    rossroma
    rossroma
    Mar 13, 2024
    3
    merge:这个不用解释了吧;
    refactor: 代码重构,未改变逻辑,只做代码优化;
    style: 只修改了样式,这个前端会用到;
    fzls
    fzls
    Mar 13, 2024❤️1
    4
    我也喜欢用这个,有时候还附带个括号表明修改范围
    dumbass
    dumbass
    Mar 13, 2024
    5
    usboy
    usboy
    OP
    Mar 13, 2024
    6
    @NessajCN 也可以通过 Github Actions 生成友好的 Changelog
    usboy
    usboy
    OP
    Mar 13, 2024
    7
    @bojackhorseman

    “Code changes that do not impact the functionality (e.g., formatting, white-space, etc)”
    -- 摘自这份约定式提交备忘单: https://cheatsheets.zip/conventional-commits
    rossroma
    rossroma
    Mar 13, 2024
    8
    @bojackhorseman 你说的对,代码格式化可以使用 style ,css 的修改一般是有语义的,使用 style 可能不太合适。
    0o0O0o0O0o
    0o0O0o0O0o
    Mar 13, 2024 via iPhone
    9
    虽然用,但是不够理解,有时候还是会犹豫到底用哪个 type ,要是有人可以做个类似 https://distrochooser.de/zh-hans 的工具就好了
    wolfie
    wolfie
    Mar 13, 2024
    10
    这不是很常见的规范之一吗。
    BeiChuanAlex
    BeiChuanAlex
    Mar 13, 2024
    11
    这不是在企业里面必须遵守的规定吗?而且也不止这几个啊。
    wenwei1202k
    wenwei1202k
    Mar 13, 2024
    12
    这个不是可以安装下插件,git cz 直接选相关的提交类型就可以了,还会让你写简略和详细说明,是否有 breaking change , 然后配合相关的版本和 change-log 的工具,发布版本时候自动更新 changelog ,这套流程已经算很成熟了
    Martens
    Martens
    Mar 13, 2024
    13
    jb 系列的 ide 里有什么推荐的插件吗
    civetcat
    civetcat
    Mar 13, 2024
    14
    搜了下 jetbrains 里面好多类似的插件,有哪款比较好用的吗
    alleluya
    alleluya
    Mar 13, 2024❤️1
    15
    @0o0O0o0O0o 前端的话 建议用这个 https://github.com/legend80s/git-commit-msg-linter 省的自己配 husky 了 用的是 ng 的那套约定 我觉得足够一般开发了
    agagega
    agagega
    Mar 13, 2024 via iPhone❤️1
    16
    用 Emoji 好了
    body007
    body007
    Mar 13, 2024
    17
    idea 的 Git Commit Message Helper 插件也可以看看。
    otakustay
    otakustay
    Mar 13, 2024
    18
    @alleluya 比较流行的是 commitlint 吧,这个才 300 多 star 有点小众了
    nonevs
    nonevs
    Mar 13, 2024
    19
    npx czg ai 命令行里面可以使用 gpt
    linkopeneyes
    linkopeneyes
    Mar 13, 2024
    20
    npm 装个全局 git-cz 就能摆脱编辑器,直接命令行写了
    usboy
    usboy
    OP
    Mar 13, 2024
    21
    git-cz 和 czg ai​ 可以的
    qinfengge
    qinfengge
    Mar 13, 2024
    22
    用的 utools 的插件
    icyalala
    icyalala
    Mar 13, 2024
    23
    commit logs 有意义即可
    要说方便沟通我更喜欢这种: https://github.com/ahmadawais/Emoji-Log
    chawuchiren
    chawuchiren
    Mar 13, 2024
    24
    有一个小疑问,根据 commit msg 生成 changelog 的话,如果中间提交 要怎么写,比如一个新功能 feat: xxx ,但是我写了 bug ,然后修复,这个时候是 feat: xxx 还是用 fix: xxx?
    Cabana
    Cabana
    Mar 13, 2024
    25
    drymonfidelia
    drymonfidelia
    Mar 13, 2024
    26
    10 年 一万多个 commits 全是这种
    drymonfidelia
    drymonfidelia
    Mar 13, 2024
    27
    @drymonfidelia 公司的主要项目之一,最高的时候月流水一千万
    nqlair
    nqlair
    Mar 13, 2024
    28
    zgw0
    zgw0
    Mar 13, 2024
    29
    我感觉 chore 的意义很模糊,所有的改动都可以说是 feat 或 fix 什么样的改动算是 chore 呢
    yangzzz
    yangzzz
    Mar 13, 2024
    30
    相同的提交规范,只不过我会在后面加点干了些啥活
    alleluya
    alleluya
    Mar 13, 2024
    31
    @otakustay 足够用了 而且你看 readme 就是平替 commitlint 的 起码你的工程里不需要 commitlint+husky 只要这一个就够了 对我来说比配置 commitlint 来的简单 install 之后基本就可以用了
    dyc12389
    dyc12389
    Mar 13, 2024
    32
    @drymonfidelia #26 这可能才是大多数项目
    palxie
    palxie
    Mar 13, 2024
    33
    @zgw0 比如改个版本号. 就可以用 chore 吧
    palxie
    palxie
    Mar 13, 2024
    34
    我们的格式是 [jira 号] chore/feature/fix: commit message.
    在 Gitlab 上 jira 号可以配置成 link. 方便到对应的 jira 上.
    usboy
    usboy
    OP
    Mar 13, 2024
    35
    @drymonfidelia 逗笑我了
    echo0x000001
    echo0x000001
    Mar 13, 2024
    36
    @drymonfidelia 搞复杂了,我就一个字母 ’m‘ ,表示 modify
    via
    via
    Mar 13, 2024
    37
    @civetcat 兄弟,这里不是小红书:doge:
    SeaRecluse
    SeaRecluse
    Mar 13, 2024
    38
    我们是 A(add)/M(modify)/B(bug)/O(optimization)
    chawuchiren
    chawuchiren
    Mar 13, 2024
    39
    @drymonfidelia 现实执行过程中,很常见,就是有些人习惯性的在 commit debug ,所以根本无法描述当前提交的内容,只能 update
    imik
    imik
    Mar 13, 2024
    40
    @rossroma style 指的是代码格式调整这种不影响功能的,而不是页面样式。
    比如前端说,我就改了个样式,那其实是有可能引入 bug 的
    ooops
    ooops
    Mar 13, 2024
    41
    @rossroma merge 本来就有足够的信息了,我觉得不用画蛇添足
    yaocy
    yaocy
    Mar 13, 2024 via iPhone
    42
    我也很疑惑,有时候写了一些代码,但是又不足以称得上是一个完整的功能,feat 不合适,又不知道该标记什么
    usboy
    usboy
    OP
    Mar 14, 2024
    43
    @yaocy 尽量保证每次提交都是单一的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2684 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 89ms · UTC 15:09 · PVG 23:09 · LAX 07:09 · JFK 10:09
    ♥ Do have faith in what you're doing.