使用 Git 的理由就是 Git 拥有最强大的撤销、版本回退功能,能够让我们在开发中随意的回退到任何一个时间点的版本。
本章小编将从如下三个方面介绍 Git 的撤销功能:
- 1、工作区中的代码想撤销
- 2、从工作区中
git add
到暂存区的代码想撤销- 3、从暂存区中
git commit
到本地仓库的代码想撤销
这里,小编只介绍本地仓库的撤销管理,至于远程仓库的撤销管理,小编会在后期的关联远程仓库一章讲解。
工作区中的撤销管理
相信大家在写代码的时候,如果写了很久发现思路错了,想要恢复到之前的状态,那么我们毫无疑问的就是删代码,这种方式相信大家都在用,小编也是,因为小编也是小白。不过这种方式的成本太高,所以小编今天给大家介绍 Git 中的撤销管理,如何高效的编写代码。
我们可以通过 git checkout -- <file>
命令来撤销工作区中修改的代码。如下:
说明:
我们可以看到首先执行了 git status
命令,发现工作区是干净的,然后我们对 a.txt 文件进行编辑添加了一行,保存并退出。退出来之后我们再次执行 git status
命令,我们可以看出工作区中的变化,这时候我们想要撤销之前对 a.txt 文件的编辑,执行 git checkout -- a.txt
命令即可,命令执行成功后,我们可以查看 a.txt 文件内容已经恢复,我们再次执行 git status
,此时工作区的状态也恢复平静了。
add到暂存区中的代码撤销管理
相信有些朋友刚把工作区中的文件添加到暂存区中,就发现有问题想要撤销,不用担心,这里是要有两个步骤:
- 1、先将暂存区中的代码撤销到工作区中。
- 2、将工作区中的代码撤销(具体操作和 ‘工作区中的撤销管理’ 一致)
首先我们先将暂存区中的代码撤销,这里我们可以使用 git reset HEAD
命令来实现。如下:
针对于 add 到暂存区中的代码撤销问题,其核心的就是先执行 git status HEAD
命令,先从暂存区中撤销,然后再从工作区中进行撤销。
提交到本地仓库的代码撤销管理
相比于前面的两种撤销管理,对于提交到本地仓库的代码撤销管理,我们来说是版本回退更恰当。对于我们想要撤销提交到本地仓库的代码,可以使用 git reset -- hard <版本号>
命令来实现版本回退,该命令中的版本号有几种不同的写法:
- 1、使用
HEAD^
来描述版本,一个^
表示前一个版本,两个^^
表示前两个版本,以此类推。- 2、针对上面的表示,我们也可以使用数字代替
^
,比如说前 99 个版本可以写成HEAD~99
。- 3、当然,我们也可以直接写具体的某个版本号,表示跳转到某一个版本处。因为我们每次提交成功后,都会生成一个哈希码作为版本号,所以这里我们也可以直接填写版本号,由于生成哈希码很长,但是我们不需要全部输入,我们只需要输入前面的几个字符即可,就是能和别的版本号识别出来就好。
具体操作如下:
1、通过 git log
查看当前提交的日志:
2、通过 git reset HEAD^^
向前退回两个版本:
3、我们查看日志执行 git reflog
命令,发现最后一次提交的版本号是 f7c95f8
,利用 git reset --hard f7c95f8
命令回到回退之前的版本:
4、通过 git reset --hard HEAD~1
回到上一个版本:
在这里,小编对于 Git 中的撤销管理就介绍到这里,如有疑问请留言,谢谢!!!