[Git]如何撤销上次commit

有的时候我们将某次修改commit了之后,突然想在其中某个文件中加点注释或去掉一些调试的log,但是又不想增加commit记录,那该怎么做呢?

reset参数
 -q, --quiet           安静模式,只报告错误
 --mixed               重置 HEAD 和索引
 --soft                只重置 HEAD
 --hard                重置 HEAD、索引和工作区
 --merge               重置 HEAD、索引和工作区
 --keep                重置 HEAD 但保存本地变更
 -p, --patch           交互式挑选数据块
下面以mixed参数为例

① 第一种情况:已commit但未push
git log查看commit记录

software006@software005:~/workdir/xxx-xxx$ git log
commit 8030dafb5fb9385f8f08e823de3a83519e0d6442
Author: xxx <xxx.com>
Date:   Wed Oct 21 11:52:18 2020 +0800

    git test

commit 5eb959980dc3f76e1238de0f249497e18ce61f4b
Author: xxx <xxx.com>
Date:   Wed Oct 21 11:51:10 2020 +0800

    git test1

使用命令撤销:git reset --mixed HEAD~1或者git reset --mixed HEAD^

software006@software005:~/workdir/xxx-xxx$ git reset --mixed HEAD~1
重置后取消暂存的变更:
M	frameworks/base/api/current.txt
M	frameworks/base/api/system-current.txt
M	frameworks/base/api/test-current.txt
M	packages/apps/Launcher3/src/com/android/launcher3/Launcher.java

再次Git log查看

software006@software005:~/workdir/xxx-xxx$ git log
commit 5eb959980dc3f76e1238de0f249497e18ce61f4b
Author: xxx <xxx.com>
Date:   Wed Oct 21 11:51:10 2020 +0800

    git test1

对比可以看出,最新一次的commit信息不存在了,Git status查看

software006@software005:~/workdir/xxx-xxx$ git status
位于分支 xxxx
您的分支与上游分支 'xxxx' 一致。

尚未暂存以备提交的变更:
  (使用 "git add <文件>..." 更新要提交的内容)
  (使用 "git checkout -- <文件>..." 丢弃工作区的改动)

	修改:         frameworks/base/api/current.txt
	修改:         frameworks/base/api/system-current.txt
	修改:         frameworks/base/api/test-current.txt
	修改:         packages/apps/Launcher3/src/com/android/launcher3/Launcher.java

未跟踪的文件:
  (使用 "git add <文件>..." 以包含要提交的内容)

	build.log
	out/

修改尚未加入提交(使用 "git add"/"git commit -a"

②第二种情况:已push
如果是已经push到远程,也是上面同样的操作,但是push到远程时要加上-f

git push origin 分支名 -f

简单来说就是
–mixed参数,不删除工作区改动代码,撤销git commit,撤销git add
–soft参数, 不删除工作区改动代码,撤销git commit ,不撤销git add
–hard,–merge, 删除工作区改动代码,撤销git commit,撤销git add,直接恢复到上一次的commit状态

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值