• 【Git命令】git commit --amend


    使用场景:
    我add并commit了一个文件A到本地仓库,注释是“修复a功能”,但是过了一会儿发现之前的文件A并没有修改完,但是我又不想重新再生成新的提交记录。

    这时就可以使用 git commit --amend了,按下列步骤:

    • git log 查看提交记录
    Administrator@DESKTOP-MDNUUEN MINGW64 /e/workspace-gitee/simple-curd-generator (master)
    $ git log
    commit 35f07fbff58c09955993a1159389f328a1ba7fb5 (HEAD -> master, origin/master, origin/HEAD)
    Author: chenyang .com>
    Date:   Sat Sep 3 11:20:32 2022 +0800
    
        update  AbstractConvertor
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    看到最后的commit是:

    35f07fbff58c09955993a1159389f328a1ba7fb5
    
    • 1
    • 修改需要修改的内容,然后提交到缓存区
    Administrator@DESKTOP-MDNUUEN MINGW64 /e/workspace-gitee/simple-curd-generator (master)
    $ git add .
    
    Administrator@DESKTOP-MDNUUEN MINGW64 /e/workspace-gitee/simple-curd-generator (master)
    $ git status
    On branch master
    Your branch is up to date with 'origin/master'.
    
    Changes to be committed:
      (use "git restore --staged ..." to unstage)
            modified:   generator/src/test/java/com/xx/Generator.java
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • git在bash窗口里执行 git commit --amend (在idea的terminal里执行会有问题,不能编辑文本)
      在这里插入图片描述

    • 出现文本编辑器;如果需要修改提交注释,直接输入 i 进入编辑模式(左下角),然后我一般直接按 esc 再输入 !wq 退出编辑
      在这里插入图片描述

    • 自动回到commit统计界面
      在这里插入图片描述

    • 查看commit历史log

    Administrator@DESKTOP-MDNUUEN MINGW64 /e/workspace-gitee/simple-curd-generator (master)
    $ git log
    commit fe811defffb0eb4f537a1a53ab701da9f569ae9c (HEAD -> master)
    Author: chenyang .com>
    Date:   Sat Sep 3 11:20:32 2022 +0800
    
        update  AbstractConvertor
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    可以发现commit的id变了(生成了新的commit),变成了:

    fe811defffb0eb4f537a1a53ab701da9f569ae9c
    
    • 1

    但是注释没有变,没有新增commit,只是修改了上一个commit

    • 执行git push 推送到远程仓库
      在这里插入图片描述
  • 相关阅读:
    WPF监听快捷键的几种方式
    springboot动态切换数据源
    数据库复习带答案
    剑指 Offer 31. 栈的压入、弹出序列
    子集和 DP - 模板详解
    李宏毅深度学习--《Unsupervised Learning:Neighbor Embedding》
    C语言——数组
    每日五道java面试题之springMVC篇(一)
    设计模式:享元模式
    【Qt QML】Qt5.15.2 qml添加自定义控件报错“Xxxx is not a type“
  • 原文地址:https://blog.csdn.net/Aqu415/article/details/126676557