Git 中的各种后悔药


Git 强大的撤销、版本回退功能,让我们在开发的过程中能够随意的回到任何一个时间点的状态,本文将从如下三个方面介绍 Git 中的后悔药:

  1. 工作区的代码想撤销
  2. add 到暂存区的代码想撤销
  3. 提交到本地仓库的代码想撤销

工作区的代码想撤销

可能有一天我正在写代码,写了很久发现写错了,想恢复到一开始的状态,一个笨办法就是把刚刚写的代码一行一行的删除,不过这种方式成本太高,我们可以通过 git checkout – 命令来撤销工作区的代码修改。如下图:
请添加图片描述
首先我们执行了 git status 命令,发现工作区是干净的,然后执行了 cat 命令,发现文件只有两行内容,然后通过 vi 编辑器向文件中添加一行,保存并退出,退出来之后又执行了 git status 命令,此时工作区的状态已经发生变化,然后我们执行了 git checkout – git01.txt 命令,表示撤销之前的操作,让 git01.txt 恢复到之前的状态,该命令执行成功之后,我们再执行 cat 命令发现文件内容已经恢复了,此时再执行 git status ,状态也恢复了。

add 到暂存区的代码想撤销

如果想要撤销,但是代码已经提交到暂存区了,不用担心,也能撤销,分两个步骤:

1.将暂存区的代码撤销到工作区
2.将工作区的代码撤销(具体操作和’工作区的代码想撤销’一致)

将暂存区的代码撤销,我们可以使用 git reset HEAD 命令来实现。如下图:
请添加图片描述
这里的代码都比较简单,核心的过程就是先执行 git reset HEAD 命令,从暂存区撤销,剩下的操作参考’工作区的代码想撤销’一节。

提交到本地仓库的代码想撤销

同样的,提交到本地仓库的代码一样也可以撤销,我们可以利用 git reset --hard <版本号> 命令来实现版本回退,该命令中的版本号有几种不同的写法:

  1. 可以使用 HEAD^ 来描述版本,一个 ^ 表示前一个版本,两个 ^^ 表示前两个版本,以此类推。
  2. 也可以使用数字来代替 ^ ,比如说前 100 个版本可以写作 HEAD~100 。
  3. 也可以直接写版本号,表示跳转到某一个版本处。我们每次提交成功后,都会生成一个哈希码作为版本号,所以这里我们也可以直接填版本号,哈希码很长,但是我们不用全部输入,只需要输入前面几个字符即可,就能识别出来。

看下面一系列的操作:
1.通过 git log 查看当前提交日志:
在这里插入图片描述
2.通过 git reset HEAD^^ 向前回退两个版本:
在这里插入图片描述
3.查看日志,发现最后一次提交的版本号是 695ce1fe ,利用 git reset –hard 695ce1fe 命令回到回退之前的状态:
在这里插入图片描述
4.通过 git reset –hard HEAD~1 回到上一个版本:
在这里插入图片描述
好了,Git 中的后悔药我们就先介绍到这里。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值