赞
踩
git commit后,还没执行push时, 如何撤销commit。
git add xxFiles
git commit -m "add xxx commit"
一、解决方案
1. git reset --soft HEAD~1
执行此命令,本次的(这里HEAD~1)commit会被撤销,commit所对应的修改会撤回到暂存区当中,即只是撤销了commit操作,比较安全,修改不会丢失
2. git reset --mixed HEAD~1
执行此命令,本次的commit会被撤销,commit所对应的修改会撤回到修改区(工作区)当中,即同时撤销了commit和add操作,修改也不会消失。需要注意的是,当直接执行git reset HEAD~1时,参数默认就为mixed
3. git reset --hard HEAD~1
执行此命令,本次的commit会被撤销,commit所对应的修改会撤回到原始状态,即修改将会全部消失,文件恢复到了上一次commit的状态,比较危险
二、命令解释:
1. HEAD^
表示上一个版本,即上一次的commit,几个^代表几次提交,如果回滚两次就是HEAD^^。
也可以写成HEAD~1,如果进行两次的commit,想要都撤回,可以使用HEAD~2。
2. --soft
不删除工作空间的改动代码 ,撤销commit,不撤销add
3. --hard
删除工作空间的改动代码,撤销commit,且撤销add
4. --amend
如果commit后面的注释写错了,可以运行 git commit --amend,进入vim编辑模式,修改完保存即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。