美文网首页
git | 版本回退

git | 版本回退

作者: 八宝君 | 来源:发表于2017-07-20 18:30 被阅读0次

版本回退

如上,我们已经学会了修改文件,现在我继续对readme.txt文件进行修改,再增加一行
内容为2333.继续执行命令如下:

往readme.txt里面添加一行2333 再add,然后commit给git
那么现在等于一共对readme.txt做过三次修改了。在实际工作中,我们脑子里怎么可能记得一个几千行的文件每次都改了什么内容,不然要版本控制系统干什么。版本控制系统肯定有某个命令可以告诉我们历史记录,在Git中,我们用git log命令查看(这里可以看出,提交注释很重要啊,不然都不知道之前提交了什么): 用git log查看

git log命令显示从最近到最远的显示日志,我们可以看到最近三次提交,最近的一次是,增加内容为2333.上一次是重写了两行关于git的内容,删除了hello word,第一次默认是hello word 。如果嫌上面显示的信息太多的话,我们可以使用命令 git log –pretty=oneline ,如下:

简易版显示结果
【那个刺眼的HEAD→master先不用管,可以自行百度HEAD的指向问题】
现在我想使用版本回退操作,我想把当前的版本回退到上一个版本,要使用什么命令呢?可以使用如下2种命令:
第一种是:git reset –hard HEAD^那么如果要回退到上上个版本只需把HEAD^改成 HEAD^^ 以此类推。那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:
第二种:git reset –hard HEAD~100即可。未回退之前的readme.txt内容如下: 未回退前,文本内容是这样的

如果想回退到上一个版本的命令如下操作:

回退到上一个版本啦

再来查看下 readme.txt内容如下:通过命令cat readme.txt查看:

已经回退到上一个版本了

可以看到,内容已经回退到上一个版本了。我们可以继续使用git log来查看下历史记录信息,如下:

只存在两个版本的信息了

我们看到 增加333333 内容我们没有看到了,但是现在我想回退到最新的版本,如:有2333的内容要如何恢复呢?我们可以通过版本号回退,只要上面的命令行窗口还没有被关掉,你就可以顺着往上找啊找啊,找到那个2333的commit idd9d...2e,使用命令git reset –hard 版本号,于是就可以指定回到未来的某个版本(版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了)。
但是现在的问题假如我已经关掉过一次命令行或者2333内容的版本号我并不知道呢?要如何知道增加2333内容的版本号呢?可以通过如下命令即可获取到版本号:git reflog 如下:

查看之前的版本号

通过上面的显示我们可以知道,增加内容3333的版本号是 d9dddc8.我们现在可以命令
git reset –hard d9dddc8来恢复了。演示如下:

2333又回来啦

【解释一下HEAD是啥】
Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向append GPL(这个图是我用的别人的图,按照上文的实际操作,这里是指向2333):


git-head

改为指向add distributed(也就是第二个版本,文件重写了两行关于git的内容,删除了hello word):


git-head-move
然后顺便把工作区的文件更新了。所以你让HEAD指向哪个版本号,你就把当前版本定位在哪。

相关文章

  • Git常用命令

    版本回退git reset 回退add 操作Git 版本恢复还原命令 reset git reset –mixed...

  • iOS-git本地及远程分支回退

    1. git本地版本回退 2. git远程版本回退 下面的命令也可以实现远程版本回退 3.Git 如何删除远程服务...

  • Git

    回退远程版本 先回退本地版本 git reset --hard commitId或者 git reset HE...

  • 今日学习2019.10.16

    1.git版本回退git log:显示日志git reset --hard commitID:回退到某id版本2....

  • git 相关

    分支总结 版本回退 git reset –hard HEAD^ 回退到上个版本,git reset –hard...

  • Git版本回退以及前进

    git版本回退 然后使用命令git reset --hard commitId 如果回退之后想要恢复到现在版本,则...

  • git回滚和强制提交

    Git回滚代码到某个commit 回退命令:git reset --hard HEAD^ 回退到上个版本 git ...

  • 关于git commit 后想回退代码

    回退命令 git reset --hard HEAD^ 回退到上一个版本git reset ...

  • git 回退命令

    回退命令: git reset --hard HEAD^ 回退到上个版本 git reset --hard HEA...

  • git reset --hard xxx git reset

    git reset --hard xxxx 彻底回退版本,连本地文件都会被回退到上个版本的内容 git log 查...

网友评论

      本文标题:git | 版本回退

      本文链接:https://www.haomeiwen.com/subject/ieejkxtx.html