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

个人项目代码提交问题

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

    每次提交代码的时候写 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
    lbyo
        25
    lbyo  
       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   ·   实用小工具   ·   3216 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:49 · PVG 19:49 · LAX 03:49 · JFK 06:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.