目录
- 1、git commit --amend 命令说明
- 2、使用场景
- (1)场景一
- (2)场景二
- 3、git commit --amend 命令原理
1、git commit --amend 命令说明git commit --amend 命令:也叫追加提交,它可以在不增加一个新的commit的情况下,将新修改的代码追加到前一次的commit中 。
使用该命令的好处,是避免许多无用的提交 。
说明:
- 如果自上次提交以来,你还未做任何修改(例如,在上次提交后马上执行了此命令) , 那么快照会保持不变(不产生新的commit),而修改的只是提交信息 。
- 或者你提交后发现忘记了暂存某些需要的修改,可以将该文件添加到暂存区,然后在使用git commit --amend 命令进行追加提交 。
- --no-edit:使用选定的提交消息而无需启动编辑器 。(追加提交 , 且不修改message信息 。)
- --reset-author:加载提交用户的信息 。比如你从新配置本地用户的信息,然后使用该参数可以重新加载新用户的信息,并且更新在追加提交中 。
- --author=:可修改Git 的 author 和 email 信息 。示例:git commit --amend --author='xxx <xxxx@xxx.xxx>'
开发代码已提交到本地版本库中,提交后发现这次提交的代码有问题,或者漏提交了一些文件,此时希望达到以下目的:
- 修改有问题的代码 。
- 补足漏提交的文件 。(一般是新增的文件没有git add )
- 把以上两点相关的代码,和前一次提交的代码合并成一个提交 。
- 给合并后的提交添加新的注释 。
解决步骤:
- 修改问题代码 。
- 执行git add . 命令,把漏提交的文件加入暂存区 。
- 执行git commit --amend -m "这里填写提交的注释"命令进行提交 。
有的时候,我们刚刚进行一次提交 , 突然发现该提交的描述(message)不是很准确 。所以需要对该提交的message进行修改(最近一次的commit) 。
1)首先查看当前分支的历史提交情况 。
# 1.查看版本库历史提交L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/amend_test (master)$ git log --onelinebd4fd48 (HEAD -> master) 第3次提交,新增内容:git commit --amend v38b3a071 第2次提交,新增内容:git commit --amend v2d3e2d8c 第1次提交,新增readme.txt文件# 2.查看可回退历史提交信息 。L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/amend_test (master)$ git reflogbd4fd48 (HEAD -> master) HEAD@{0}: commit: 第3次提交 , 新增内容:git commit --amend v38b3a071 HEAD@{1}: commit: 第2次提交,新增内容:git commit --amend v2d3e2d8c HEAD@{2}: commit (initial): 第1次提交,新增readme.txt文件2)修改最新一次历史提交记录 。
最新一次历史提交记录 , 也就是第3次提交 。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/amend_test (master)$ git commit --amend -m "我是第3次提交,重新修改的message"[master 69a9841] 我是第3次提交,重新修改的message Date: Tue Apr 20 17:41:44 2021 +0800 1 file changed, 1 insertion(+)
提示:如果此时有需要新增或改动的文件 , 可以先把文件添加都暂存区,然后随着git commit --amend命令,一起追加提交 。3)再次查看当前分支的历史提交情况 。
# 1.查看版本库历史提交L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/amend_test (master)$ git log --oneline69a9841 (HEAD -> master) 我是第3次提交,重新修改的message8b3a071 第2次提交,新增内容:git commit --amend v2d3e2d8c 第1次提交,新增readme.txt文件# 2.查看可回退历史提交信息 。L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/amend_test (master)$ git reflog69a9841 (HEAD -> master) HEAD@{0}: commit (amend): 我是第3次提交 , 重新修改的messagebd4fd48 HEAD@{1}: commit: 第3次提交,新增内容:git commit --amend v38b3a071 HEAD@{2}: commit: 第2次提交,新增内容:git commit --amend v2d3e2d8c HEAD@{3}: commit (initial): 第1次提交 , 新增readme.txt文件
推荐阅读
- 二 『现学现忘』Git后悔药 — 33、revert撤销
- 一 『现学现忘』Git后悔药 — 32、revert撤销
- 男女互相暗恋的表现学生党 男女互相暗恋的表现
- 立夏的经典语录
- 男生在等你主动的表现学生 男生在等你主动的表现
- 『重大发现』京东白条套取方法
- 关于立夏的短句子
- 至上励合张远资料
- 双子座『谈恋爱』必须注意的事情不与前任作比较?
- 87年属兔的适合做什么职业?