史上最浅显易懂的Git教程!GIT(day4)【Git查看历史版本、回退版本、查看操作命令】

我决定精简笔记了,以下全是硬货

再次修改文件内容为

Git is a distributed version control system.
Git is free software distributed under the GPL.

然后提交

$ git add readme.txt
$ git commit -m "append GPL"

在这里插入图片描述
再次修改内容为:

Git is a distributed version control system.
Git is free software.

再次提交

$ git add readme.txt
$ git commit -m "增加了一段描述"

在这里插入图片描述
到此,我们总共提交了三个版本,在实际工作中,可能是几千行的文件被改了无数次,人脑根本记不住,但是在Git中,通过git log可以告诉我们历史记录:

查看历史
$ git log

在这里插入图片描述
git log命令会把从近到远的提交日志显示出来,可以看到,最早的一次是“white a readme file”,最近的一次是“增加了一段描述”
如果文件修改次数较多,也可以加上--pretty=oneline参数:

$ git log --pretty=oneline

在这里插入图片描述
就会得到省略时间和作者的比较简洁的历史提交日志;

友情提示:你看到的一大串类似于6620…的是每次提交的版本号,这和SVN不同,Git的版本号是一个用SHA1计算出来的一个非常大的十六进制数字;

每提交一个版本,Git就会把它们自动串成一条时间线,如果使用可视化工具查看Git历史,就可以更清楚的看到提交历史的时间线:
借用图片

下面我们学习回退到某一个历史版本:

首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交6620......的这个版本(每个人的版本号肯定不同)你上一个版本是HEAD^,上上一个版本就是HEAD^^当然,往上100个版本是不可能写100个^的,(笑哭。。。。),所以写成HEAD~100

如果我们想把版本回退到上一个可以使用命令git reset

$ git reset --hard HEAD^

在这里插入图片描述
--hard参数的意义后面再讲
现在去看看你的readme.txt文件是不是回到了上一个版本;
在这里插入图片描述
我们现在用git log看看现在版本库的状态:
在这里插入图片描述
以上红框中任选一个操作即可

又想回到最新的版本

之前最新的那个版本“增加了一段描述”已经不在了,时光穿梭到了历史,但是如果你想找回来之前最新的版本该怎么操作?注意:只要以上的命令窗口还没有关闭,你就可以往上找,找到“增加了一段描述”commit id,也就是版本号,这样就可以又回到未来的某个版本;

$ git reset --hard 6620183

在这里插入图片描述
版本号没必要写全,前几位就可以,Git会自动去找,当然,尽量多写几位,不要写一两位;
现在,再去看一下你的readme.txt文件
在这里插入图片描述
果然,他胡汉三又回来了。。。。。。。

解释下原理

Git的版本回退速度非常快,因为Git再内部有个指向当前版本的head指针,当你回退版本的时候,Git仅仅是把HEAd指针指向你想要的版本:
在这里插入图片描述
改变版本:
在这里插入图片描述
然后顺便把你工作区的文件更新了,所以你让HEAD指向那个版本号,你就把当前版本号定位在哪。
如果,你关闭了当前命令窗口,还想回到最近的一个版本,找不到最近的版本commit id怎么办?
在Git中,总是有后悔药可以吃的,当你用$ git reset --hard HEAD^回退到上一个版本的时候,再想恢复“增加了一段描述”这个最新版本,就必须找到“增加了一段描述”commit id,Git提供了一个命令git reflog用来记录你的每一次命令:

查看你的每一次命令,来查看之前的版本号
$ git reflog

在这里插入图片描述
从Git输出可知,你要找的每一个版本的commit id都有,你就可以去到任意一个版本了

总结

  • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard <commit_id>

  • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

  • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值