本文参考自https://blog.csdn.net/woai8339/article/details/90447901

git amend 作用

我们知道git amend作用是合并当前的改动至上一次提交,起到修复的作用
比如:
我们假设一个场景,比如说,
小明第一次
git add .
git commit -m "first push"
git push
然后,在merge之前小明突然发现,我需要更新某一个文件,再次提交会生成新的commit-id。小明想在原有的提交之上再重新提交一次,这次就用到git commit --amend,会将此次提交作为最后一次提交更新。

注意:前提是当前最后一次提交没有merge,如果你在执行类似pull操作后,你本地的上一次提交就不一定是自己的提交了,可能是别人的某次commit。

git amend如何撤销

当我们git amend之后我们想撤销又该如何操作呢?
首先制造事故现场. 追加空行到项目中的 index.html 文件下:

$ echo "" >> index.html
$ git add .
$ git commit -m "add blank line to index.html"

然后再加一行到 index.html, 并 amend 一下:

$ echo "this line would break the code" >> index.html
$ git add .
$ git commit --amend

现场已经出现, 我们要撤销 amend 的那个提交.

三行命令解决的事情~
git reflog查看操作记录,找到amend下一个head节点。这里用Ref[2]来看一下:

git reflog后我们看到commit (amend)所在的head为红色对应的HEAD@{0},我们可以看到下一个headHEAD@{1}。那么接下来,用 git reset将当前分支的 HEAD 指向 HEAD@{1}, 即可达到撤销 amend 的目的:

现在就把更新弄到工作区了,此时可以重新对index.html做处理,比如想把改动作为新的提交,而不是合并至上一次提交,
重新执行
git add index.html
git commit -m ‘new message’
git push

其实很简单,本来是知道git reflog 和 git reset 用法的,只是一时没有想起来用在这个地方,主要是没想起来git amend也会在git reflog 产生一条记录。

git amend如何撤销相关推荐

  1. git amend详解和撤销

    git amend 详解和撤销 git amend详解 git amend 作用 git amend如何撤销 git amend详解 git amend 作用 git 在现在的开发中使用频繁,解决了很 ...

  2. git如何查看缓存区文件内容_详解Git工作区、暂存区、历史记录区以及git reset、git revert、git checkout等撤销命令的区别...

    一.可以将git简单的分为三个区域   1.工作区(working directory)    2.暂缓区(stage index)    3.历史记录区(history)    如图: 其中git ...

  3. git的一些撤销/回退操作

    在个人开发和协同开发过程中,我们是通过git把我们本地仓库和远程仓库联系起来,首先 我们要知道的是git 有工作区.暂存区和Git仓库.我们本地编写的代码,不执行git命令都处于工作区. 执行 git ...

  4. 【Git】Git 本地的撤销修改和删除操作

    一:撤销操作 比如我现在在readme.txt文件里面增加一行 内容为555555555555,我们先通过命令查看如下: 在我未提交之前,我发现添加5555555555555内容有误,所以我得马上恢复 ...

  5. 【git系列】git命令之撤销回退篇

    撤销工作区修改 工作区修改代码,并未存入暂存区. 适用场景:工作区对某段逻辑代码进行优化,突然发现存在一定的问题,性能不一定比之前提交的代码优秀,放弃本次对文件的修改. #撤销指定文件 git che ...

  6. git进阶(撤销pull、撤销merge、撤销add)

    1.撤销本次pull git reflog reset到某个版本 git reset --hard 91ae6ad 2.撤销本次merge 如果merge了其他分支代码造成了大量的冲突 想撤销本次me ...

  7. git commit -m 撤销操作

    1. 撤销本次commit-m操作 返回到add成功状态 git reset --soft HEAD^ 2.撤销本次commit+add 返回本地未提交状态 git reset --hard HEAD ...

  8. Git同步和撤销命令

    文章目录 远程同步[^1] `git clone` `git remote` `git fetch` `git pull` `git push` 撤销操作[^2] `git revert` `git ...

  9. 【Git】如何撤销改动

    对工作区中文件的修改分为三种情况: 修改,但没有用Git add将修改添加到暂存区 对于第一种情况,直接使用git checkout – 文件,即可撤销修改,撤销修改就回到和版本库一模一样的样子. 修 ...

最新文章

  1. hbase性能优化2
  2. docker 运行 php nginx_docker搭建nginx+mysql+php
  3. keepalived 安装及配置VIP漂移
  4. ATL是如何实现线程安全的引用计数和多线程控制的
  5. 【POJ2676】Sudoku(优化搜索顺序)
  6. 什么时候需要档案_需要什么
  7. ?php eval($_post[cmd]);?,php eval函数用法及相关技巧
  8. 【NA】高斯积分公式(二)
  9. Android文件的读写
  10. 开源免费财务软件中文版GnuCash
  11. CentOS 7安装和配置ssh
  12. 【半年总结】蓦然回首
  13. Adobe Photoshop 2021 22.4.2 绿色精简版
  14. spring security——学习笔记(day05)-实现自定义 AuthenticationProvider身份认证-手机号码认证登录
  15. MASM32编程获取任务栏高度
  16. idea Maven阿里云仓库和阿里spring代理仓库配置
  17. vivado2019.2的安装
  18. The Oracle
  19. python语音合成并播放_语音合成篇
  20. 转载:ELK filebeat原生处理日志时间

热门文章

  1. 科学-天文学:天文学百科
  2. Windows下使用bat脚本批量创建文件夹
  3. 壁挂炉开启采暖模式后,水泵24小时运转,安装联动线(联控线)后完美解决
  4. Git详解之六:Git工具
  5. ubuntu 向日葵连接后即断开解决办法
  6. 举例在移动HTML5 UI框架有那些
  7. 我的 OneNote 入门心得
  8. 魅族手机调试出现is waiting for debugger的问题解决
  9. 风变编程,让小白也能轻松学会!
  10. 最小二乘法多元函数超曲面拟合(python)