问题描述:
# 1. 新建gitcode目录,然后在目录下
git init
# 2. 用idea打开目录后,新建.gitignore文件后
git add .
git commit -m "init project"
git log
# 3. 就出现如下图情况
目的:向撤销该次代码提交
# 仅撤销 git commit 命令
git reset --soft HEAD^
# 撤销 git commit 命令和撤销 git add
git reset --hard HEAD^
$ git reset HEAD^
fatal: ambiguous argument 'HEAD^': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
结果:并没有达到预期效果撤回git commit提交
# 仅撤销 git commit 命令
git update-ref -d HEAD
注意:上面是一个项目第一次提交后撤回碰到的情况。
如果不是第一次提交,是第二次、第三次…就可以使用下面命令
# 撤销 git commit 提交
git reset --soft HEAD^
HEAD^的意思是上一个版本,也可以写成HEAD~1;
如果2次commit,都想撤回,可以使用HEAD~2;
# 不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
git reset --mixed HEAD^
或
git reset HEAD^
# 不删除工作空间改动代码,撤销commit,不撤销git add .
git reset --soft HEAD^
# 删除工作空间改动代码,撤销commit,撤销git add .
git reset --hard HEAD^
# 如果commit注释写错了,只是想改一下注释,只需要git commit --amend,此时会进入默认vim编辑器,修改注释完毕后保存就好
git commit --amend
如果已经推到远程仓库了,要撤回,则本地操作commit提交的撤回,然后执行
git push origin 分支名 --force