通常采用 reset HEAD~来回退版本,~后面加上回退的次数
1.没有push到远程仓库的情况
1)--mixed
不删除提交的代码,回退commit 回退add .
注意:-mixed 为默认参数。git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的
2)--soft
撤销commit 不回退add
就是本地仓库代码还在 但是commit 不在
3)--hard
commit 和add 都撤销
本次操作之后 修改的代码回滚到之前状态
1)HEAD^ 的意思是上一个版本,也可以写成 HEAD~1。如果你进行了2次 commit,想都撤回,可以使用 HEAD~2
2)如果 commit 注释写错了,只是想改一下注释,只需要执行命令行:git commit --amend。此时会进入默认 vim 编辑器,修改注释完后保存即可。
2.已经push到远程仓库了
// 撤销最近的一次提交
git revert HEAD --no-edit
git revert 是对给定的 commit 提交进行逆过程,该命令会引入一个新的提交来抵消给定提交的影响。 和 git cherry-pick 一样,revert命令不修改版本库的现存历史记录,相反它只会在记录添加新的提交。
代码就回退到上次commit的位置