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

个人项目代码提交问题

  •  
  •   Macv1994
    weijiang1994 2021-01-12 14:38:57 +08:00 3618 次点击
    这是一个创建于 1738 天前的主题,其中的信息可能已经有所发展或是发生改变。

    每次提交代码的时候写 commit info 我都要纠结很久到底怎么写,有时候完成的不止一个功能,但是又不是在同一个模块。 想问问各位是怎么提交代码的?

    30 条回复    2021-01-13 12:29:13 +08:00
    zoharSoul
        1
    zoharSoul  
       2021-01-12 14:43:51 +08:00   1
    那就完成一个提交一个
    mokeyjay
        2
    mokeyjay  
       2021-01-12 14:45:14 +08:00   1
    当然是完成一个功能提交一次啊
    nise3055
        3
    nise3055  
       2021-01-12 14:47:34 +08:00
    描述 1 & 描述 2 & 描述 3
    无限用&连起来
    我写的不只是给别人看的还要给自己以后查问题的时候看,当然写清楚最好
    Macv1994
        4
    Macv1994  
    OP
       2021-01-12 14:48:19 +08:00
    @zoharSoul
    @mokeyjay
    有时候写完了一个就忘了要提交 然后就几个功能一起提交了
    Macv1994
        5
    Macv1994  
    OP
       2021-01-12 14:48:52 +08:00
    @nise3055 嗯 这样也可以 只是有时候 我不喜欢太长的 commit info
    ychost
        6
    ychost  
       2021-01-12 14:55:15 +08:00
    随便写,比如动了什么逻辑,修复了什么 BUG,或者改了某个字段啥的,有时候不想写就写个 update
    Macv1994
        7
    Macv1994  
    OP
       2021-01-12 14:58:57 +08:00 via Android
    @ychost 随便写的话日后不好查找如果有问题的话
    rebounce
        8
    rebounce  
       2021-01-12 15:07:19 +08:00
    rebase
    stephen728
        9
    stephen728  
       2021-01-12 15:10:30 +08:00
    我一般按有序列表来写 把所有改动都列进去
    zzzmh
        10
    zzzmh  
       2021-01-12 15:13:49 +08:00
    我们这边的规定是尽量一个功能 一次提交,例如这 3 个文件是一个改了一个功能,就这 3 个提交一次,写一个功能,剩下的再来。如果实在分不开,才写一起。就这次提交有多个原因,那后续审核代码就累点。。
    Macv1994
        11
    Macv1994  
    OP
       2021-01-12 15:31:17 +08:00
    @stephen728 但是我比较反感提交信息过长 哈哈哈
    @zzzmh 嗯 我可以按照这种规定来提交
    AoEiuV020
        12
    AoEiuV020  
       2021-01-12 15:50:46 +08:00
    零零碎碎的我一般就写个大概,修改了 xx 相关问题,
    fangcan
        13
    fangcan  
       2021-01-12 15:52:33 +08:00
    分功能提交,后面合并到其他分支或者需要撤回时 好操作
    renmu123
        14
    renmu123  
       2021-01-12 16:09:09 +08:00 via Android
    我一般看心情,心情好就多写一点,标个 1,2,3,心情不好就一个 update 完事 2333
    maocat
        15
    maocat  
       2021-01-12 16:17:46 +08:00
    @renmu123 哈哈哈,我一般写 fix
    samin
        16
    samin  
       2021-01-12 16:32:34 +08:00   1
    题主反应的,是工作方式的问题,尽量避免无意义或者不完整的提交,参考下 commit message 的最美状态吧:

    https://github.com/SaminZou/study-prj/blob/master/docs/knowledge_base/git%E6%8F%90%E4%BA%A4%E4%BF%A1%E6%81%AF%E8%A7%84%E8%8C%83.md
    Macv1994
        17
    Macv1994  
    OP
       2021-01-12 16:46:16 +08:00
    @samin 确实是这样子,谢谢你这个建议,可以尝试着按照这个范式去提交
    xmt328
        18
    xmt328  
       2021-01-12 16:57:42 +08:00
    建议拆分提交
    cmdOptionKana
        19
    cmdOptionKana  
       2021-01-12 17:06:35 +08:00
    可以考虑在项目里加一个 commit.md, 在里面记录详细的更新信息。

    虽然每个功能搞一个 feature branch 完事后再合并、rebase 是最条理清晰的,但个人项目有时候实在想偷懒。
    zjbztianya
        20
    zjbztianya  
       2021-01-12 17:17:55 +08:00
    hantsy
        21
    hantsy  
       2021-01-12 17:24:10 +08:00   1
    @Macv1994
    1. 用 Branch 添加新功能( Feature ),即使是你的个人项目,也可以让你养成很好的一种习惯。创建 Branch,立即建 PR,可以在 PR 或相应的 Issue 中写一个 CheckList ( Todo List,一个 feature 拆分成细的 Task ),每次提交对应一个 Item,完成一项点一项,相应的 PR 或 Iusse 标题也可以自动显示进度。

    2. Commit message 严格按 Google Angular 规范来,可以用 Commitlint 检查。
    https://github.com/conventional-changelog/commitlint

    3. 保证每次提交记录是一个可以运行(或可工作的)的单元,完成了一个可描述的功能,不相干的文件尽可能在不同的提交中,没有 Broken 的功能。非常实用,实践过程必需有大量测试来保证。可能的误操作,如比前一次 Push 中少提交了文件等,用 rebase 修改。(**这个对于实际项目至关重要**)(比如写用户相关功能,完全不必要顺便修改产品相关的代码。我的观察,很多国人习惯,总是顺手修改一下,结果导致与他人冲突,合并浪费大家更多的时间。发现其他组件代码有问题,需要优化或者修改,正确的姿势第一步是新建一个 Issue 去 @相关人讨论)
    jetyang
        22
    jetyang  
       2021-01-12 17:28:10 +08:00
    按规范一个 feature 一次 commit,最后一起 push 上去
    Macv1994
        23
    Macv1994  
    OP
       2021-01-12 17:46:31 +08:00
    @zjbztianya 好的,感谢~
    @hantsy 感谢,学习到了

    @jetyang 你这种方式正是我现在用的 哈哈哈
    Jinnn
        24
    Jinnn  
       2021-01-12 18:16:08 +08:00
    感觉项目未成形的时候会经常一口气改好多, 后期的话比较好一个问题一个 commit
    hive
        25
    hive  
       2021-01-12 18:27:57 +08:00
    zxCoder
        26
    zxCoder  
       2021-01-12 20:02:30 +08:00
    个人项目我经常把 git 当做同步工具。。。一天提交一次。。。
    oliver2bao
        27
    oliver2bao  
       2021-01-13 00:10:55 +08:00
    我是 nodejs 开发,所以用的工具都是 nodejs 的包。

    我在提交的时候,安装`commitizen`后使用`git cz`来提交。另外,`commitizen`模块是可通过其他包自定义提交格式的。

    具体看我的![博客]( https://bubao.github.io/2020/09/16/nodejs%E9%A1%B9%E7%9B%AE%E8%87%AA%E5%8A%A8%E6%A0%BC%E5%BC%8F%E5%8C%96%E6%96%B9%E6%A1%88/)。
    jzmws
        28
    jzmws  
       2021-01-13 08:05:12 +08:00 via Android
    我的要求 xxx (姓名简写) 1.xxx2.xxx
    hantsy
        29
    hantsy  
       2021-01-13 11:40:53 +08:00
    Niphor
        30
    Niphor  
       2021-01-13 12:29:13 +08:00
    提交时 按功能 pick 代码行提交,push 前合并重复 commit
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1212 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 488ms UTC 23:49 PVG 07:49 LAX 16:49 JFK 19:49
    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