一.使用IntelliJ idea
VSC => Git
=> reset head
=> 退回到上次commit
=> 退回到第2次提交之前
=> 退回到指定commit版本
Reset Type 有三种:
Mixed 默认方式,只保留源码,回退 commit 和 index 信息。
Soft 回退到某个版本,只回退了 commit 的信息,之前写的代码还是保留的,不会恢复到 index file 一级。如果还要提交,直接 commit。
Hard 彻底回退,本地源码也会变成上一个版本内容,不保留之前 commit 的代码
To Commit 是回滚到哪个版本,例如,HEAD 为当前版本,HEAD^ 为上一个版本;
使用 git reset 回滚一般使用默认的 mixed 或者粗暴的 hard 方式;
二.使用git命令
写完代码后,我们一般这样
git add . //添加所有文件
git commit -m “本功能全部完成”
执行完commit后,想撤回commit,怎么办?
git reset --soft HEAD^
git reset HEAD~
这样就成功的撤销了你的commit
注意,仅仅是撤回commit操作,您写的代码仍然保留。
说一下个人理解:
HEAD^的意思是上一个版本,也可以写成HEAD~1
如果你进行了2次commit,想都撤回,可以使用HEAD~2
至于这几个参数:
–mixed
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
–soft
不删除工作空间改动代码,撤销commit,不撤销git add .
–hard
删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态。
顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:
git commit --amend
此时会进入默认vim编辑器,修改注释完毕后保存就好了。