git amend 详解和撤销
git amend详解
git amend 作用
git 在现在的开发中使用频繁,解决了很多多人协作问题。今天我们来说说git --amend
到底是干啥的。
git --amend
简单地来说,可以理解成对最后一次提交做修正。<前提是当前最后一次提交没有merge
>
我们假设一个场景,比如说,
小明第一次
git add .
git commit -m "first push"
git push
然后,在merge
之前小明突然发现,我需要更新某一个文件,再次提交会生成新的commit-id
。小明想在原有的提交之上再重新提交一次,这次就用到git commit --amend
,会将此次提交作为最后一次提交更新。
git amend如何撤销
当我们git amend
之后我们想撤销又该如何操作呢?三行命令解决的事情~
git reflog
查看操作记录,找到amend
下一个head
节点。这里用Ref[2]来看一下:
git reflog
后我们看到commit (amend)
所在的head
为红色对应的HEAD@{0}
,我们可以看到下一个head
为HEAD@{1}
。那么接下来,用 git reset 将当前分支的 HEAD 指向 HEAD@{1}, 即可达到撤销 amend 的目的:
现在就把更新弄到工作区了,接下来再进行三部曲就好了。
三部曲:
git add .
git commit -m "notes"
git push
Ref:
1、http://www.softwhy.com/article-8492-1.html
2、https://www.jianshu.com/p/97341ed9d89e