为什么我选择使用约定式提交规范: feat, doc, chore, fix - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
usboy
V2EX    git

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

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

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