老哥们,提交代码,用 Commitlint 吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
不要在回答技术问题时复制粘贴 AI 生成的内容
lx271896700133
V2EX    程序员

老哥们,提交代码,用 Commitlint 吗?

  •  1
     
  •   lx271896700133 2023-08-21 14:48:26 +08:00 4650 次点击
    这是一个创建于 781 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近公司强制使用 Commitlint ,而且要求必须 feat: fix: docs:等单词开头。

    个人感觉挺浪费时间的。

    大家觉得呢?

    52 条回复    2023-08-22 12:35:59 +08:00
    molvqingtai
        1
    molvqingtai  
       2023-08-21 14:51:00 +08:00   35
    那么浪费了你多少时间?
    ufan0
        2
    ufan0  
       2023-08-21 14:52:04 +08:00
    不用,用也问题不大。

    我们实话实说,如果觉得这个事情浪费时间没啥用处,纯粹做样子恶心人。

    那比这个恶心人的事情多了去了,无需在意,反正也改变不了什么。
    DOOMS
        3
    DOOMS  
       2023-08-21 14:53:39 +08:00
    不觉得浪费时间吧
    pansongya
        4
    pansongya  
       2023-08-21 14:55:25 +08:00
    aicommits
    guanguans
        5
    guanguans  
       2023-08-21 15:00:04 +08:00   1
    贴个自己的,可能用的上

    https://github.com/guanguans/ai-commit
    Alias4ck
        6
    Alias4ck  
       2023-08-21 15:05:26 +08:00   1
    我觉得统一规范挺好的啊 你为公司工作按照规范来为啥是浪费时间?
    crysislinux
        7
    crysislinux  
       2023-08-21 15:08:00 +08:00
    我觉得 commit 的时候检查有点累赘。push 的时候检查一下最后一条就行了。我更倾向于 merge 的时候检查,但是 GitHub 不支持这种需求。
    laoona
        8
    laoona  
       2023-08-21 15:08:13 +08:00
    习惯就好了。公司有规范就按规范的来,你觉得不合理,可以提出质疑。不过 commitlint 现在基本上都是标配了吧。
    ciki
        9
    ciki  
       2023-08-21 15:10:47 +08:00
    挺好的,后续追踪提交会很有用
    frankyzf
        10
    frankyzf  
       2023-08-21 15:11:29 +08:00
    浪费写这几个字母的时间可以省很多查找 commit 的时间,应该是很值吧
    Pastsong
        11
    Pastsong  
       2023-08-21 15:13:34 +08:00
    @crysislinux 可以 PR lint ,最后的 commit 默认是用 PR 名
    dif
        12
    dif  
       2023-08-21 15:19:43 +08:00
    以前我也这么觉得,后来有一次要通过会议找提交记录,结果清一色的 fix bug ,然后我现在宁愿多花点时间把提交记录写清楚。
    xiaoxuan6
        13
    xiaoxuan6  
       2023-08-21 15:20:57 +08:00   6
    这样不浪费时间?[Imgur]( https://imgur.com/dLBzzL7)
    shiny
        14
    shiny  
       2023-08-21 15:23:23 +08:00   2
    浪费了你的时间,却节省了大家的时间
    RobinzzZ
        15
    RobinzzZ  
       2023-08-21 15:27:04 +08:00
    等你查一个几年前的修改导致的 bug ,或者想找找自己的提交的时候,你看着 message 一堆数字就会骂自己 SB 了。
    pengtdyd
        16
    pengtdyd  
       2023-08-21 15:35:41 +08:00
    其实这个要看项目管理的本事,光使用 fix 这些没啥用,项目管理跟不上,最后会导致为了用而用,为了所谓的规范而规范,这样还不如全部写 1 更方便。
    crysislinux
        17
    crysislinux  
       2023-08-21 15:38:27 +08:00
    @Pastsong 确实是,可以 GH 跑拦一下。
    Rache1
        18
    Rache1  
       2023-08-21 15:56:47 +08:00   1
    如果你能保证自己的 commit 信息始终是有意义的,倒是没必要,但是既然你都花时间去写 commit ,难道真的还差写那几个字符的时间吗?

    有些人就是不好好写 commit ,只是为了草草了事,后续找问题的时候,鬼知道为什么修改了


    团队协作中,commit 信息很重要。哪怕就是自己的项目,像上面这种 commit ,过上一两个月,你真能想起来自己当初为啥要改吗?
    yhxx
        19
    yhxx  
       2023-08-21 16:00:10 +08:00
    要求必须 feat: fix: docs:等单词开头感觉没啥问题
    但是有些复杂配置,大点的项目跑 lint 的过程有点久,这个时间有点不太能接受
    JxQg597
        20
    JxQg597  
       2023-08-21 16:03:22 +08:00
    你觉得有问题,你可以提出你的想法给公司的项目管理。
    有理有据的说出用 1 比用 feat:(功能修改 )的优点是什么,并且也说出这样的缺点是什么。如果你都不能说服你自己,就没必要来这里找认同感来掩盖你的偷懒和编码逻辑的混乱。

    反正我看接手屎山看到这些离谱的的东西,我肯定开喷。
    lx271896700133
        21
    lx271896700133  
    OP
       2023-08-21 16:09:01 +08:00
    @JxQg597 我做个人项目的时候,从来不用 Commitlint ,甚至很少认真写提交日志,这么多年也没遇到过什么问题。如果是公司项目,我可以把提交日志写详细一点,不过公司硬性规定的几个单词前缀,在我看来没啥用。所以来这里问问大家的看法。请不要直接把我定性为懒惰和逻辑混乱。谢谢
    zzz22333
        22
    zzz22333  
       2023-08-21 16:19:59 +08:00
    @lx271896700133 前缀有利于做一些筛选,比如说发布 release note 的时候,就会用前缀做区分。 话说回来,加个前缀浪费了多少时间呢?
    TimPeake
        23
    TimPeake  
       2023-08-21 16:22:11 +08:00
    工具里不是有插件吗。。。不会真有人手动敲这玩意儿吧
    swaggeek
        24
    swaggeek  
       2023-08-21 16:42:33 +08:00
    @lx271896700133 协作做项目跟独狼做项目那是有区别的,假如你去查一个项目,要找个提交,发现时间线全是随便写的字母,你会怎么想。这种东西就是前期花点时间,方便后期维护和找 bug ,况且这也不用花多少时间啊。很难想象你这点时间都不花,能够花更多的时间在代码设计上。。。
    Al0rid4l
        25
    Al0rid4l  
       2023-08-21 16:48:03 +08:00   1
    用 commitlint 肯定配 commitizen + cz-git 啊, 怎么还自己手敲的...
    codeMore
        26
    codeMore  
       2023-08-21 16:53:46 +08:00
    自己分支随意,但是合并进入公共分支的时候,就需要规范一点了。这点能浪费多少时间?
    JxQg597
        27
    JxQg597  
       2023-08-21 16:54:05 +08:00
    @lx271896700133 #21 好的,不好意思。其实我本来也想提到公司项目和个人项目的。如果是公司项目你就按照公司要求的来,我觉得这样还挺好的,保证大家的协作的规范。
    个人项目你爱咋样都可以的。
    shadowyue
        28
    shadowyue  
       2023-08-21 16:55:11 +08:00
    看了上面的各种回复,很明显 Commitlint 就是为了保住当个基本的开发的下限
    lx271896700133
        29
    lx271896700133  
    OP
       2023-08-21 16:59:33 +08:00
    @Al0rid4l 学习了
    suofeiya
        30
    suofeiya  
       2023-08-21 17:04:09 +08:00
    就多打一个单词能浪费多少时间.
    liuchuanfff
        31
    liuchuanfff  
       2023-08-21 17:12:10 +08:00   1
    程序员门槛还是太低了,commit 规范都要吐槽吗
    iLtc
        32
    iLtc  
       2023-08-21 17:14:52 +08:00
    我们的项目会通过 `semantic-release` 来更新版本号。所以会有 `fix` 修订号+1 、`feat` 次版本号+1 、`break` 主版本号+1 这样的规则。
    kxaccelerise
        33
    kxaccelerise  
       2023-08-21 17:19:54 +08:00
    这玩意自己写一个命令行工具来辅助快捷输入也就几行,然后随便定义几个 alias shell 命令就完事了。之后不就一秒钟的事
    msaionyc
        34
    msaionyc  
       2023-08-21 17:30:23 +08:00
    手动敲也就两三秒吧。。。
    clf
        35
    clf  
       2023-08-21 17:32:18 +08:00
    配合 gitlab 等使用可以在 fix 后有 issue 啥的自动关闭(虽然我觉得有点离谱,验证都不用验证了。
    nothingistrue
        36
    nothingistrue  
       2023-08-21 17:39:03 +08:00
    如果你觉得 feat: fix: docs: 这么简单的玩意还浪费时间,那你就真得是正在贡献屎山。如果你觉得 feat: fix: docs: 只在提交的时候有用,即为了前缀而前缀,那你们整个团队都在贡献屎山,在此前提下再去认真写前缀,确实是浪费时间。

    @lx271896700133 #21
    @swaggeek #24
    个人项目也要好好写 commit message 的。commit message ,是涵盖查询标记、简单笔记、历史溯源等多项好处的,不用是傻瓜。
    Huelse
        37
    Huelse  
       2023-08-21 17:42:53 +08:00   1
    我选择最后 Squash commits
    c3de3f21
        38
    c3de3f21  
       2023-08-21 17:44:42 +08:00
    commitlint 加 changelog 插件可以快速生成版本日志
    zhangyq008
        39
    zhangyq008  
       2023-08-21 17:47:07 +08:00
    @xiaoxuan6 #13 哈哈哈,笑死
    declandragon
        40
    declandragon  
       2023-08-21 17:48:36 +08:00
    个人习惯是把 commit msg 写清晰,一个事情 commit 一次,不把多个事情混在一起。
    公司也用 commitlint ,我觉得这样很好,用规则是做一些要求,节省管理成本。
    picone
        41
    picone  
       2023-08-21 18:25:04 +08:00
    @pansongya 这个貌似只是解决了 commit message 的问题?和是否 lint 无关
    jsq2627
        42
    jsq2627  
       2023-08-21 18:40:44 +08:00
    格式无所谓,关键是要花时间写内容
    unco020511
        43
    unco020511  
       2023-08-21 20:20:35 +08:00
    自己的分支都无所谓的,怎么玩都行,但是合主干的那个 squash commits 就必须照团队规范了
    lavvrence
        44
    lavvrence  
       2023-08-21 20:27:19 +08:00
    支持公司决策,从软件工程角度,这里必须强制执行。
    tairan2006
        45
    tairan2006  
       2023-08-21 20:38:08 +08:00
    公司是对的
    dayeye2006199
        46
    dayeye2006199  
       2023-08-22 00:27:21 +08:00
    还有强制 squash commit 的,你是没看见
    lx271896700133
        47
    lx271896700133  
    OP
       2023-08-22 08:43:29 +08:00
    @Huelse 这个好
    Imindzzz
        48
    Imindzzz  
       2023-08-22 09:09:59 +08:00 via Android
    把你们平时的 commit message 贴出来看看呢
    1018ji
        49
    1018ji  
       2023-08-22 09:27:36 +08:00
    熟悉了浪费啥时间,就是正常写 commit
    govizlora
        50
    govizlora  
       2023-08-22 10:17:33 +08:00 via iPhone
    @dayeye2006199 squash 并不会浪费时间吧
    Jaosn
        51
    Jaosn  
       2023-08-22 12:28:27 +08:00
    加个单词就能浪费时间了啊
    momo24672
        52
    momo24672  
       2023-08-22 12:35:59 +08:00
    我觉得强制 commitlint 完全没有意义,我日常提 PR

    PR title: ticketNum: feature description or Bugfix: xxx
    Comments: follow https://keepachangelog.com/en/1.0.0/

    最后 squash commit
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3602 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 00:46 PVG 08:46 LAX 17:46 JFK 20:46
    Do have faith in what you're doing.
    ubao 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