0


Git还原大法

最近复习了一下git相关知识点,关于还原的问题,我发现多数都是只有回退,而没有回退错以后的前进操作。

想学?我教你啊

准备工作:

一个文件夹,交给git管理即可,写一段最原始的内容,这里我把一串字符串"这是张三"写到A.txt记事本中,add--->commit,文件存放到仓库中(关于add和commit提交这里就不做解释, 可以参考其他文章),到此,准备工作完成

具体分为3种情况:

情况1.修改了文件,但是还没有做add操作

比如我在文件中多加了一句话:“追加李四 ”,但是在add到暂存区之前,我后悔了,不想加这句话,查看状态,红色M就是modify修改状态

这种情况最好办,直接git checkout -- A.txt

git checkout -- A.txt

再次查看,已经恢复成我修改前的样子了

情况2.修改了,也add到了暂存区,但是还没commit

还是用上面的例子"追加李四",并add,这时候的修改状态M会变成绿色,说明修改好了已经放到暂存区了

这时候想反悔,使用git reset head,reset顾名思义,重置,即重置恢复到当前版本,因为还没有commit提交,所以当前版本的内容应该还是“这是张三”

git reset head

执行后,查看这时候的状态git status -s神奇的绿色状态M变成了红色状态M,即恢复成了还没有add时候的样子,此时的样子就和情况1是一模一样的了

那就按着情况1的样子git checkout -- A.txt就可以恢复

情况3.修改了,add了,也commit到了仓库

还是以“追加李四”为例,add--->commit的操作都做了以后,说明这时候的仓库就多了一个版本了(只要commit提交一次就会产生一个版本),查看现在仓库中都有什么版本,执行下面的命令

git log --oneline

此时仓库有2个版本,HEAD所在的就是当前版本,就是我最近提交的。但是我又又又后悔了,不该提交的,我想回到第一次提交的样子,怎么办?

git reset head^

和情况2很像,但是多了个 "^" 符号,意思是返回到上一个版本

注:因为我这个就2个版本,所以上一个版本head^就可以,如果版本比较多,想返回上上个版本,就是head^^,以此类推

这时候再查看状态git status -s,又神奇的回到了修改后,没add的状态了,又回到了情况1的样子

剩下就简单了,按情况一的样子操作一遍就好

旧版本转用回新版本

到此,回退的情况都介绍完,已经回退到了以前的旧版本,不管怎么改,怎么add,怎么commit都没事,都是可以回退回去到最开始的状态

但是!我又又又又后悔了,还是想用最新版本,这就很烦人了,但是也很好解决,先查看当前的版本

 git log --oneline

发现没,明明提交了2次,回退到了旧版本之后,新版本的就不见了?这里不用担心,只要提交到了仓库,在本地就一定会有记录,使用下面命令查看,可以看到所有提交的信息,记住前部的commit_id,后面恢复时候要用到,先执行下面命令查看

git reflog

这样就可以看到所有提交的记录了,我们要从第一次提交的旧版本,升级到第二次提交的新版本去,前部的commit_id号就可以发挥作用了,执行

git reset --hard '5c3cc36'

这就去到最新版本了,git log --oneline查看一下

至此,Git还原大法完成,下课!

标签: git

本文转载自: https://blog.csdn.net/weixin_54913320/article/details/131467340
版权归原作者 小星阿星 所有, 如有侵权,请联系我们删除。

“Git还原大法”的评论:

还没有评论