楔子:来,干了这碗后悔药~ 明天的日子又好晴朗好快活~

 

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 编辑器,修改注释完后保存即可。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐