项目第一次git commit后如何撤销

问题描述:

# 1. 新建gitcode目录,然后在目录下
git init

# 2. 用idea打开目录后,新建.gitignore文件后
git add .

git commit -m "init project"

git log

# 3. 就出现如下图情况

项目第一次git commit后如何撤销_第1张图片
目的:向撤销该次代码提交

# 仅撤销 git commit 命令
git reset --soft HEAD^

# 撤销 git commit 命令和撤销 git add
git reset --hard HEAD^

项目第一次git commit后如何撤销_第2张图片
项目第一次git commit后如何撤销_第3张图片

$ 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  [...] -- [...]'

结果:并没有达到预期效果撤回git commit提交

# 仅撤销 git commit 命令
git update-ref -d HEAD

项目第一次git commit后如何撤销_第4张图片

注意:上面是一个项目第一次提交后撤回碰到的情况。

如果不是第一次提交,是第二次、第三次…就可以使用下面命令

# 撤销 git commit 提交
git reset --soft HEAD^

项目第一次git commit后如何撤销_第5张图片
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

你可能感兴趣的:(git,git,github)