V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
usboy
V2EX  ›  git

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

  •  1
     
  •   usboy · 2024-03-13 10:12:59 +08:00 · 4617 次点击
    这是一个创建于 383 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    比如:

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

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

    第 1 条附言  ·  2024-03-13 10:52:35 +08:00
    分享两个实用的:

    - 各大编辑器插件市场搜索“ai commit 或者 git commit”
    - 开发人员必备的备忘单: [https://cheatsheets.zip/conventional-commits]( https://cheatsheets.zip/conventional-commits)
    第 2 条附言  ·  2024-03-13 10:55:29 +08:00

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

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

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