Git书签(三)本地git commit提交之后,想撤销并保留修改的代码
·
楔子:来,干了这碗后悔药~ 明天的日子又好晴朗好快活~
1.今日书签
程度猿的日常中容易发毛的几件事中,有个糗羞挫的操作:一顿操作猛如虎,各种修改优化堆码信手拈来行云流水一气呵成,各种 git add、git commit 挥洒自如,最后一看,我操,这TM不是在开发分支上啊,这分支这酸爽不由自说,在看这个的恐怕都知道。
就问一句,本地 git commit 提交后,怎么撤销 commit,并保留修改的代码?
2.浪子回头
--mixed
git reset HEAD^
不删除工作空间提交的代码,撤销 commit,并且撤销 git add . 操作。
注意:-mixed 为默认参数。git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
--soft
git reset --soft HEAD^
不删除工作空间提交的代码,撤销 commit,但不撤销 git add . 操作。
注意:就是说仅仅是撤回提交,修改的代码仍然保留在本地仓库。
--hard
git reset --hard HEAD^
删除工作空间提交的代码,撤销 commit,并且撤销 git add . 操作。
注意:就是说即撤回后,本地提交的代码也不保留。就等于恢复到了上一次的 commit 状态。
3.脱坑技能
1)HEAD^ 的意思是上一个版本,也可以写成 HEAD~1。如果你进行了2次 commit,想都撤回,可以使用 HEAD~2
2)如果 commit 注释写错了,只是想改一下注释,只需要执行命令行:git commit --amend。此时会进入默认 vim 编辑器,修改注释完后保存即可。
更多推荐
已为社区贡献7条内容
所有评论(0)