【git 使用】git 如何撤销 commit ,返回到未 commit 状态

问题描述:


A 状态 commit 后,又进行了一些编辑,这些编辑并不想全部保存 commit 上去。这个状态叫 C。后来一不小心,把 C 状态 commit 了,工作区的内容被提交至暂存区,状态变为 B commit 了。现在要撤消 commit C => B 这个动作,并使文件恢复成 C 状态。

预热:


本文将使用到的命令:(看完再尝试)

命令用途示例
git log查看历史 commit
git reflog查看最近操作一般会有 HEAD@{N} 表示第几步操作,逆序
git reset重置当前空间git reset commitHash 回撤至 commitHash 次提交结果

本文相关概念:

概念解释
工作区编辑文件、写代码的“地方”,修改过的代码放在此处
暂存区commit 后放置的地方,保存修改,等待提交

解决方案:

git log

查看目前所有提交。找到 commitAcommitB 的 hash 值。

git reset –hard commitB_hash

将工作区,暂存区强制恢复成 commitB 的状态

git reset commitA_hash

恢复 commitA 状态的源码。
此时由于 工作区存放的是 commitB 的代码,而暂存区存放的是 commitA 的代码。由 A –> B 的状态就是错误提交前的编辑状态。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值