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

大家所在的公司有 commit message 规范吗?

  •  
  •   zhoudaiyu · 2021-02-08 13:04:21 +08:00 via iPhone · 9479 次点击
    这是一个创建于 1382 天前的主题,其中的信息可能已经有所发展或是发生改变。

    听说有的公司对 commit message 还有检测,不通过不许提交代码,惊到我了,我都是 bugfix feat minor 随便写几行就完了。

    84 条回复    2021-02-18 13:39:36 +08:00
    mandex
        1
    mandex  
       2021-02-08 13:08:52 +08:00
    我见过不少写 1/2/3 的,瞎写
    sfz97308
        2
    sfz97308  
       2021-02-08 13:10:34 +08:00
    有,必须以 ticket 编号开头,并且会自动检查 ticket 状态,不符合的会拒绝 push
    killergun
        3
    killergun  
       2021-02-08 13:15:24 +08:00
    没有
    freebird1994
        4
    freebird1994  
       2021-02-08 13:18:25 +08:00 via Android   ❤️ 1
    之前公司必须 issue#taskNo: 提交信息这种
    seki
        5
    seki  
       2021-02-08 13:25:08 +08:00
    直接 squash merge,随便你怎么写 commit message 都不会显示在 master (
    konakona
        6
    konakona  
       2021-02-08 13:25:32 +08:00
    有什么自动检测提交是否合规的办法吗?(工具化)

    我也很头疼有人 commit message 是“1” 、“up”这种。
    wolfie
        7
    wolfie  
       2021-02-08 13:27:17 +08:00
    @freebird1994 #4
    bug 直接提在代码托管的 issue 里?
    37Y37
        8
    37Y37  
       2021-02-08 13:29:18 +08:00
    还真的有,这个很正常吧,统一的 message 有助于协作,尤其是合并的时候
    hillMonkey
        9
    hillMonkey  
       2021-02-08 13:29:45 +08:00
    commit mesage 没有,PR title 有。
    Rwing
        10
    Rwing  
       2021-02-08 13:30:35 +08:00
    Sivan
        11
    Sivan  
       2021-02-08 13:30:35 +08:00   ❤️ 1
    这个很常见啊,一般用 Angular Commit Format 结合提交前检查,可以一定程度上约束。
    37Y37
        12
    37Y37  
       2021-02-08 13:30:39 +08:00
    @konakona hook 就可以实现,看这个 https://blog.ops-coffee.cn/s/xjlojmj9gtbfgnpwn_yu2a
    介绍的事 svn 的 hook,git 的也一样有类似的
    chenliangngng
        13
    chenliangngng  
       2021-02-08 13:31:03 +08:00 via Android
    看看 github 的提交规范吧,我们公司就是这种,我觉得很合理
    cjw1115
        14
    cjw1115  
       2021-02-08 13:33:46 +08:00
    [XXX] XXXXXXXXXXXXX
    lc7029
        15
    lc7029  
       2021-02-08 13:43:09 +08:00
    @konakona 我们用的 svn-hook,大概是有个 xml 文件里有各种规范,提交时按这个 xml 检查,合规才接受提交。
    acrisliu
        16
    acrisliu  
       2021-02-08 13:45:19 +08:00 via Android
    有规范,commit message 中要关联 jira,不符合 push 会失败。
    Tonni
        17
    Tonni  
       2021-02-08 13:50:23 +08:00
    有规范的,不过没有做自动检查,全靠自觉
    limuyan44
        18
    limuyan44  
       2021-02-08 14:01:43 +08:00 via Android
    提交记录一堆 123456fixfixfix 能看么,要 git 干嘛。
    johnsona
        19
    johnsona  
       2021-02-08 14:42:09 +08:00 via iPhone
    @sfz97308 我怀疑你们用 jira
    gaoshiba
        20
    gaoshiba  
       2021-02-08 15:13:01 +08:00   ❤️ 1
    反正领导不看,那里面都是垃圾话,或者“今天真累啊,晚上去吃 xxx 吧” push!!
    jdhao
        21
    jdhao  
       2021-02-08 15:25:31 +08:00 via Android
    没有,因为不重视,很多人都只写 update
    yuruizhe
        22
    yuruizhe  
       2021-02-08 15:49:45 +08:00
    有,commit 前要新建事务卡片,卡片 id 不存在不能 commit
    codadrnosing
        23
    codadrnosing  
       2021-02-08 15:55:41 +08:00
    @gaoshiba 哈哈哈越看越馋的 History
    proger
        24
    proger  
       2021-02-08 16:09:53 +08:00
    #<issue> feat: xxxxxxxx 描述
    amundsen
        25
    amundsen  
       2021-02-08 16:15:59 +08:00
    有的,用 husky+gitlint 规范
    varrily
        26
    varrily  
       2021-02-08 16:23:57 +08:00
    [JIRA-ID|no-jira] (fix|feature|chore): do something
    katana97
        27
    katana97  
       2021-02-08 16:52:24 +08:00
    "no message"
    weizhen199
        28
    weizhen199  
       2021-02-08 16:59:49 +08:00
    可以在 svn server 里上 hook,自定义格式要求
    tongyang
        29
    tongyang  
       2021-02-08 18:07:08 +08:00   ❤️ 1
    有的代码格式不行都不让提交必须格式化
    luckyrayyy
        30
    luckyrayyy  
       2021-02-08 18:09:28 +08:00
    有的,我们是类别+项目+说明+CR,比如:bufix(account):fix account bind error 。http://gitlab.com/mergerequest/xxx
    learningman
        31
    learningman  
       2021-02-08 18:13:01 +08:00
    action(scope): short description

    long description

    Signed-off
    Elethom
        32
    Elethom  
       2021-02-08 18:14:14 +08:00   ❤️ 2
    什么叫「惊到」了,lint 很正常,没有 lint 也要遵守特定的成文规范,没有这些的公司 HR 是怎么招的人。
    Heartbleed
        33
    Heartbleed  
       2021-02-08 18:17:30 +08:00 via Android
    有的,要写任务编号,问题原因等等。。
    Elethom
        34
    Elethom  
       2021-02-08 18:17:49 +08:00   ❤️ 4
    这篇是我一直推荐阅读的:
    https://chris.beams.io/posts/git-commit/
    a1248499257
        35
    a1248499257  
       2021-02-08 18:20:14 +08:00
    我司是自觉遵循 Angular 的 commit message 规范
    chiu
        36
    chiu  
       2021-02-08 18:21:39 +08:00 via Android
    各个 team 各个 team 的规范
    AEDaydreamer
        37
    AEDaydreamer  
       2021-02-08 20:10:30 +08:00
    没有,但是我尽量保证自己的 commit 符合一些通用规范
    yolee599
        38
    yolee599  
       2021-02-08 21:13:00 +08:00 via Android
    公司没有,自己定了一套,fix: xxxxx,feat: xxxxx,style: xxxxx
    alanhe421
        39
    alanhe421  
       2021-02-08 22:11:00 +08:00
    需要规范化
    1. 有助于生成 CHANGELOG,及版本管理。
    2. 有助于问题追溯,版本还原等
    NoKey
        40
    NoKey  
       2021-02-08 22:15:57 +08:00
    用 gerrit 的话,很对都有规则,不符合规则合并不了
    imdong
        41
    imdong  
       2021-02-08 22:47:23 +08:00 via iPhone   ❤️ 2
    正确使用 git,代码规范算不算程序员的职业道德的一部分?
    zerofancy
        42
    zerofancy  
       2021-02-09 01:06:28 +08:00
    有规范,但不做强制检查
    molvqingtai
        43
    molvqingtai  
       2021-02-09 01:42:30 +08:00 via Android
    有配 commitlint
    imycc
        44
    imycc  
       2021-02-09 01:51:36 +08:00
    原团队比较规范,但也仅限于“提倡”。一些技术好的,也是直接一句“update”,看得我头疼。

    后面也是三十多人的团队了,直到我离职前才有人负责做 git hook 来检查,最后还没推广出去,那人也离职了 hhhh
    wnpllrzodiac
        45
    wnpllrzodiac  
       2021-02-09 08:09:19 +08:00 via Android
    从来就没一家规范过。。。
    Hurriance
        46
    Hurriance  
       2021-02-09 08:32:53 +08:00 via iPhone
    @yolee599 我也是这样的,哈哈
    imdong
        47
    imdong  
       2021-02-09 08:38:56 +08:00 via iPhone   ❤️ 3
    这是我上周某天的 git 提交说明:

    完成 备忘录相关功能与路由
    修正 发布 text 日记时 resource 为空时的错误
    添加 清单仅保存标题的逻辑
    调整 清单数据按照添加时间升序排序
    修正 非女性时获取不到另一半的记录
    调整 resource 找不到资源时独立的错误
    修正 保存头像时 avatar_preset 不能为空的问题
    添加 清单记录软删除
    移除 清单暂存功能(逻辑有冲突,移至本地保存)
    添加 清单详情添加是否已经提醒字段
    调整 保存提醒的具体时间
    添加 清单提醒合作者
    添加 检查某人情况完成状态
    添加 提醒打卡的消息对象
    添加 清单异常类
    调整 日记筛选条件可以为逗号分隔的字符串
    修正 时间戳中日期验证的格式错误
    调整 纪念日可选时间区间
    inhzus
        48
    inhzus  
       2021-02-09 08:42:11 +08:00 via iPhone
    必须关联需求 id,形如 to #12345678: fix xxx
    sazima
        49
    sazima  
       2021-02-09 08:54:27 +08:00
    靠自觉
    vinceall
        50
    vinceall  
       2021-02-09 09:06:27 +08:00 via Android
    有,但没强制,我一般按规范来,毕竟方便回看,不过看到别人提交最多的是 temp,哈哈哈
    lipcao
        51
    lipcao  
       2021-02-09 09:19:02 +08:00
    idea 有模版插件,我们用的模版插件
    wangyzj
        52
    wangyzj  
       2021-02-09 09:29:17 +08:00
    必须要有
    Rache1
        53
    Rache1  
       2021-02-09 09:31:50 +08:00
    commit 没有,但是有想过通过命令行给 提交命令加 alias 的方式加上 ticket,一般都是描述干了啥
    Ranying
        54
    Ranying  
       2021-02-09 09:37:44 +08:00
    commit message 不是应该配着任务规划或者甘特图之类的写吗
    dddd1919
        55
    dddd1919  
       2021-02-09 09:49:09 +08:00
    如果有项目管理工具的话,以项目生成的 ID 开头
    sth2018
        56
    sth2018  
       2021-02-09 10:18:09 +08:00
    公司没有,但是自己会简单的写一下修复了啥啥啥 新增了啥啥啥 修改了禅道 bug 号多少多少
    方便以后追溯问题
    shiji
        57
    shiji  
       2021-02-09 10:19:50 +08:00 via iPhone
    有 主要是前面要写好 jira 号码,后面随便写。 是服务器自动验证的。为了和 jira 整合
    yangbin9317
        58
    yangbin9317  
       2021-02-09 10:34:54 +08:00
    update
    up
    fix
    up
    xxxxxxx
    up
    :w
    up up
    kamilic
        59
    kamilic  
       2021-02-09 10:37:00 +08:00
    有,但禁不住有人 「 fix: fix bug 」 系列提交
    这些检测只是用于提醒对方忘了做什么事情,但是不能让有意想绕过的人修正自己的行为😂
    zhchbin
        60
    zhchbin  
       2021-02-09 10:59:00 +08:00
    @acrisliu

    请问一下具体是如何实现拒绝 push 的?是用 pre-commit hook 吗?
    acrisliu
        61
    acrisliu  
       2021-02-09 11:06:28 +08:00   ❤️ 1
    yikyo
        62
    yikyo  
       2021-02-09 11:24:07 +08:00
    前端有 commitlint
    pkookp8
        63
    pkookp8  
       2021-02-09 12:20:25 +08:00 via Android
    svn 有 hook,少一个冒号就不给提交
    最近公司在切 git,看到有 hook 的脚本,没仔细研究原理,应该也有类似实现
    jiangbingo
        64
    jiangbingo  
       2021-02-09 13:18:04 +08:00
    [feature id] add / test function
    1. xxx
    2. xxx
    or
    [bug id] xxx
    Thecxx
        65
    Thecxx  
       2021-02-09 15:14:24 +08:00
    要求 commit message 必须有意义,版本迭代需要有规范的 changelog
    edotac
        66
    edotac  
       2021-02-09 15:30:06 +08:00
    git config --global commit.template 配置个模板,每次选填就完事了
    alleluya
        67
    alleluya  
       2021-02-09 15:58:19 +08:00
    我们这新来一小姑娘 commit 写 aaaaa 我说你 commit 不能写无意义的 message 不会写英文 中文的也可以(公司大佬之前要求 commit 都要用英文写) 结果人家写的是汉语拼音.....
    leonme
        68
    leonme  
       2021-02-09 16:03:19 +08:00 via iPhone
    必须有 icafe 单号,不然提不上去
    zhuweiyou
        69
    zhuweiyou  
       2021-02-09 16:26:01 +08:00
    一律: update
    js8510
        70
    js8510  
       2021-02-09 17:09:25 +08:00 via Android
    我都很规范的。title, summary, test plan 尤其 test plan 1 2 3 如何复现等等等等。commit msg 写的好基本就是文档。以后查起来很方便。别人紧急 revert 也不用把你半夜叫起来。我司倒是很少 aaa 的,太夸张了,至少有个 title. 我要是简单直接 request change
    bleaker
        71
    bleaker  
       2021-02-09 19:06:13 +08:00
    带 issue/ticket 号,必须有主谓宾
    linshenqi
        72
    linshenqi  
       2021-02-09 19:39:14 +08:00
    暂没有,现在还是写成:
    1...
    2...
    3...
    受以前 chrome 代码影响
    mghio
        73
    mghio  
       2021-02-09 22:44:31 +08:00
    我司一般有个前缀描述下提交的类型:

    feat: 添加新特性
    fix: 修复 bug
    docs: 文档修改
    style: 代码格式修改,空格、格式缩进等等,不改变代码逻辑
    refactor: 代码重构
    perf: 提高性能的代码更改
    test: 增加或修改测试用例
    chore: 其他修改,改变构建流程、或者增加依赖库、工具等
    shellic
        74
    shellic  
       2021-02-10 07:56:32 +08:00 via Android
    @mghio 哈哈,我们团队也是这样,感觉这东西只要团队成员统一一个规范就好
    cirzear
        75
    cirzear  
       2021-02-10 10:03:05 +08:00
    没有。除非出了问题,有人会在群里说一下:)
    fulinlin9527
        76
    fulinlin9527  
       2021-02-10 10:11:36 +08:00 via Android
    我为团队提交正规点,弄了个 idea 插件 Git Commit Message Helper 然后大家虽然格式规范了,但是提交消息的质量还是很差😅
    Lemeng
        77
    Lemeng  
       2021-02-10 11:53:22 +08:00
    必须要有
    huang7230468
        78
    huang7230468  
       2021-02-10 14:44:11 +08:00
    <feature> ...
    <hotifx> ...
    <refactor> ...
    <test> ...
    <doc> ...
    fordawn
        79
    fordawn  
       2021-02-10 15:37:01 +08:00
    有次查问题,去看了下另一个项目的提交记录,一眼望去,全是 update 和 fix,差点疯了。我每次提交写记录,rebase,有个啥用。
    KINGOD
        80
    KINGOD  
       2021-02-10 16:56:46 +08:00
    这个肯定有呀,参见 .git/hooks/commit-msg.sample 。至少用 Gerrit 的肯定会有一份本地的 commit-msg 生成 Change-Id 。

    然后 Gerrit 上会检测 Jira key 、Jira issue status 、first line char num 、blank line then at least two line description…… 等等好多
    barfi1316
        81
    barfi1316  
       2021-02-11 16:59:57 +08:00
    @fordawn 得开发人员素质高啊
    oukichi
        82
    oukichi  
       2021-02-11 17:23:30 +08:00 via iPhone
    @sfz97308 老哥莫不是在菊厂哈哈
    DiamondYuan
        83
    DiamondYuan  
       2021-02-13 09:48:57 +08:00 via iPhone
    福报厂

    没有,我一般用 emoji
    wr516516
        84
    wr516516  
       2021-02-18 13:39:36 +08:00
    @DiamondYuan 以前公司用华为云的代码托管,emoji 还会引起分支异常
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   988 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:31 · PVG 04:31 · LAX 12:31 · JFK 15:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.