为什么我选择使用约定式提交规范: feat, doc, chore, fix - V2EX
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 5058 次点击
    这是一个创建于 584 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    比如:

    • 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
    我也喜欢用这个,有时候还附带个括号表明修改范围
    dumbass
        5
    dumbass  
       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
    linkopeneyes
        20
    linkopeneyes  
       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 /td>
        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     Solana     2908 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 06:12 PVG 14:12 LAX 23:12 JFK 02:12
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86