• Git实战技巧-如何将暂存区的多个功能代码分成多次提交


    Git实战技巧-如何将暂存区的多个功能代码分成多次提交

    1、问题场景

    波仔新入职了一家公司,公司采用git来管理代码。第一天,波仔很快就写好了频道管理模块的CRUD,开心地哼着歌回家了。 第二天,波仔又接到了一个单表敏感词管理的CRUD任务, 聪明的波仔也很快地完成了。但他突然想起昨天的代码还没有commit, 而现在想commit的时候,发现频道管理的代码和敏感词管理的代码都通过git add命令加入到了暂存区。如果这时候commit ,相当于把两天的任务提交到了一起。 公司的git管理有严格规范 , 两个模块的代码必须要分两次提交才可以。

    那么问题来了, 代码已经全部通过,提交到了暂存区,如何将暂存区的代码分多次commit提交呢?
    当前代码情况如下图:

    当前git情况如下图:

    2、解决思路

    • 通过idea工具解决
    • 通过git命令行解决

    3、动手实战

    3.1、通过idea工具解决

    1. 点击提交代码,

    2. Default Channgelist 变更清单中,只勾选第一天的变更代码,

    3. 填写提交信息,点击commit提交,

    4. 完成频道管理commit提交。

      操作如下图:

      1. 再次点击提交代码,
      2. Default Channgelist 变更清单中,勾选第二天的变更代码,
      3. 填写提交信息,点击commit提交,
      4. 完成敏感词管理commit提交。

      操作如下图:

      点击下方git:log日志查看:

    两次commit提交记录

    3.2、通过git命令行解决

    输入git add-i 进入暂存区交互式窗口

    1. 暂存区的文件路径及提交情况,
    2. 要交互执行的命令:
      1. status: 暂存区状态 和 git add -i 效果类似
      2. update: 可以将已经tracked的文件添加到暂存区
      3. revert: 可以根据提示选择,将暂存区文件删除
      4. add untracket: 可以将未跟踪tracked的文件添加到暂存区
      5. patch: 用于离线打补丁,通过代码版本
      6. diff: 对比暂存区文件 和 仓库源文件差异
      7. quit: 退出交互式窗口
      8. help: 查看帮助
    3. what now:你现在要做什么呢?
      输入上面指令对应的 数字 或 首字母 即可执行对应指令。

    what now>> 输入 3 回车


    弹出暂存区文件列表
    并且下面的命令行窗口,提示: revert>>
    我们可以按要求输入文件的编号,多个文件以空格隔开
    这些文件,是要从暂存区删除的哦

       比如:
    现在要提交频道管理的代码, 那么先把敏感词的代码从暂存区删除	
    敏感词对应的文件编号:  2  4  6  8  10
    
    • 1
    • 2
    • 3

    revert>> 输入 2 4 6 8 10 回车

    弹出暂存区文件列表
    选择revert的文件编号前,有 * 号标记
    再次回车 这些文件 会从暂存区删除
    revert>>回车

    敏感词相关文件,已经变为 untracked 未跟踪状态
    what now 输入 1 (查看状态)

    暂存区中,只剩下频道管理的代码
    这时退出交互窗口,commit 提交代码 就可以了
    what now 输入 7 退出交互窗口

    输入git commit -m '功能:开发完成频道管理CRUD'

    完成频道管理模块代码提交
    输入git add. 将敏感词代码再次提交到暂存区, 并查看git status

    输入git commit -m '功能:开发完成敏感词管理CRUD'

    输入git log查看提交记录

    暂存区的代码,已经分为两次commit,任务完成。

    4、问题小结

    • 通过idea工具,比较简单,但依赖工具。
    • 通过原生命令,稍微复杂些,但不依赖其它工具。

    如果文件过多,通过交互式窗口选择如果太麻烦,也可以用命令清空暂存区,然后在有选择的add+commit。
    git rm --cache [fileName] 删除暂存区文件的指定文件(本地工作区未删除)。

      这样,波仔的问题就解决啦~ 怎么样,简单吧,大家快试试吧!
    
    • 1
  • 相关阅读:
    AGC034E Complete Compress
    两种方法教你在postman设置请求里带动态token
    一个讲座监控软件
    【牛客刷题】带你在牛客刷题第三弹(C/C++语言基础)
    软件测试之测试程序开发
    leetcode-aboutString
    RabbitMQ的入门篇
    web前端网页设计作业—个人网页(游戏主题)(html+css+js)
    呼叫中心-拨号方案和路由配置okcc智能系统
    小叶OJ 2716: 过河问题 ← 贪心算法
  • 原文地址:https://blog.csdn.net/qq_16517483/article/details/125566088