V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
0x11901
V2EX  ›  问与答

一个 git 提交频率的问题

  •  
  •   0x11901 · 2019-07-19 10:58:28 +08:00 · 4174 次点击
    这是一个创建于 1735 天前的主题,其中的信息可能已经有所发展或是发生改变。

    工作几年了,感觉每个人的提交习惯都不同,一般分三类:

    1. 完成一个模块功能后提交,比如改完一个 bug
    2. 完成一个大功能的小点就提交,比如封装了一个函数
    3. 达到一个时间点感觉再不提交就要解决冲突了就提交,比如下班前提交

    我目前就是使用第二种方式提交,写一个页面我可以提交 7、8 次。但是大部分同事都是第一种,提交的代码:要么修改几行代码,要么就是多个文件大量的新增 /修改。

    我以为版本控制就是让自己能方便的追溯代码的构成思路,随时可以滚回几个版本之前或者再滚回之后发现还不如上一版之后再切回原来的节点继续开发……所以提交的越细碎越有价值。

    但是现实是我提交了十几次同事才提交一次,是我的理解错了吗?

    26 条回复    2019-07-19 23:40:00 +08:00
    wutiantong
        1
    wutiantong  
       2019-07-19 11:02:41 +08:00
    多提交总是没错的,但你要会写 commit message
    FaiChou
        2
    FaiChou  
       2019-07-19 11:07:55 +08:00
    信不信你同事会背后说: 没事天天提交这么多干嘛, 万一冲突了咋办!
    iwishing
        3
    iwishing  
       2019-07-19 11:10:07 +08:00
    看 KPI,如果 KPI 统计的是 commit 数量,那 P 大点事都提交;
    如果没有,按一个 feature 一次提交,改一个 bug 一次提交。
    FaiChou
        4
    FaiChou  
       2019-07-19 11:12:16 +08:00
    对于小公司来说, 如果大家水平都不太高, 不要怀疑自己, 尤其是 git.. 工作好多年的同事, 只会用 sourcetree.. 他们会的不是 git, 而是一个图形化工具的操作而已. 不要抱怨, 毕竟只是小公司, 有耐心的话可以给他们培训下 git 使用规范
    GPIO
        5
    GPIO  
       2019-07-19 11:14:12 +08:00
    持续集成
    misaka19000
        6
    misaka19000  
       2019-07-19 11:20:23 +08:00 via Android   ❤️ 3
    我喜欢多次提交,然后用 rebase 合并
    orzorzorzorz
        7
    orzorzorzorz  
       2019-07-19 11:24:03 +08:00
    一般第二种情况都是走 pr,想提交多少提交多少,最后 squash merge 完事
    琢磨了下,你这三种情况其实都该走 pr 啊
    Justin13
        8
    Justin13  
       2019-07-19 11:26:08 +08:00 via Android
    Feature 是 branch 级别的。commit 的话应该是在功能完备的前提下,尽可能的多提交。
    justlikemaki
        9
    justlikemaki  
       2019-07-19 11:43:04 +08:00
    开发一个功能时多次提交不 push,最后完成了再合并为一个提交去 push
    cmonkey
        10
    cmonkey  
       2019-07-19 11:45:38 +08:00
    代码写的多了,可能一行就是一个提交,所以一天能有几十个提交,都是血泪史导致成现在的开发模式
    weixiangzhe
        11
    weixiangzhe  
       2019-07-19 11:49:28 +08:00 via iPhone
    嫌多就 rebase -i 合并一下嘛
    shm7
        12
    shm7  
       2019-07-19 11:51:19 +08:00 via iPhone
    一个小功能 commit 一次
    thfurior
        13
    thfurior  
       2019-07-19 11:54:37 +08:00
    自己分支随便 commit,但是合并的时候一般要 rebase,不然主分支的 log 就太杂了
    yongliu
        14
    yongliu  
       2019-07-19 12:51:37 +08:00
    小功能提交,方便后续 cherry-pick 到需要的分支。
    leafre
        15
    leafre  
       2019-07-19 12:58:53 +08:00
    其实我想说,你想怎么提交就怎么提交
    JasonSi
        16
    JasonSi  
       2019-07-19 13:13:28 +08:00
    你这个提交是 git commit 么。。 怎么还能冲突的,和你提交几次有什么关系,还是说直接都在 master 撸的?
    season4675
        17
    season4675  
       2019-07-19 16:42:48 +08:00
    我突然想到了以前一个同事,他的 commit 是
    update
    update
    update
    update
    ……
    liyanan
        18
    liyanan  
       2019-07-19 16:50:31 +08:00   ❤️ 1
    我也喜欢多次提交,尽量单元小,模块独立也有逻辑 就提交。commit 时 message 写清楚,这样以后追溯起来很方便。见过很多人,很多东西一起提交,commit 写的也不是很清楚,后续对于不理解的代码,真的很痛苦。
    0x11901
        19
    0x11901  
    OP
       2019-07-19 17:21:04 +08:00
    @wutiantong 其实我是[whatthecommit]( http://whatthecommit.com/)选手
    0x11901
        20
    0x11901  
    OP
       2019-07-19 17:22:28 +08:00
    @FaiChou 其实我现在这里也是个大厂了……不过据我的观察大部分人都是能用就行,不会在意这些细节
    0x11901
        21
    0x11901  
    OP
       2019-07-19 17:27:44 +08:00
    @yongliu 讲真我这么多年就遴选过一次代码,果然 git 我还没有入到门
    Takamine
        22
    Takamine  
       2019-07-19 17:54:53 +08:00
    在自己分支我就一个空格提交一次也行阿。:doge:
    lozzow
        23
    lozzow  
       2019-07-19 19:26:48 +08:00 via iPhone
    add *
    fix bug
    🌚
    msg7086
        24
    msg7086  
       2019-07-19 22:21:40 +08:00
    频繁提交,阶段性 Rebase。
    Git 是一个很强大的工具,几乎是万能的,要怎么利用需要你自己去挖掘。如果 Git 的命令行你吃不消,可以找个像 SmartGit 这样功能丰富的 GUI 来做,减少出错的可能性。
    inhzus
        25
    inhzus  
       2019-07-19 23:29:51 +08:00 via Android
    Merge 时 Squash 就好了
    Midnight
        26
    Midnight  
       2019-07-19 23:40:00 +08:00
    我是频繁提交,然后 PR 的时候 Squash
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1324 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 23:38 · PVG 07:38 · LAX 16:38 · JFK 19:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.