00:00
好了同学们,那咱们这个继续往下说啊,我们这个3.7这一章节干嘛呀,就给大家讲一下这个历史版本啊,以及这个文件这个版本穿梭的一个问题啊,我们看一下这个版本是怎么穿梭的,好吧,那首先啊,你还是这两个命令,我们已经给他演示过了,就是一个叫GI ref log是吧,还有叫GI log,一个是查看精简版的版本信息,一个是查看版本的详细信息,那我可以再次给他演示一下这个命令啊,如果说你进到公司里边是吧,你打开一下这个giate,你不知道你们当前这个有多少个版本,这个代码你就可以干嘛呀,你就可以那个giate,一个是精简版的,先看这个经典版的,就这个ref log是吧,你就可以明显在这个命令底下看到你们当当前这个项目,它经历过多少个版本的更替。那这个看完之后你感觉不过瘾是吧,在这个里边还可以看到这个什么呀,看到这个每个版本的这个精简版的版本号,还可以看到这个指针指向那个版本。
01:01
那你如果嫌这个不过瘾,你想看一下这每个版本是哪个人提交的,你可以干嘛呀,你可以把这个ref给他去掉,查看这个详细的日志,那在这个日志里边就明显能看到什么呀,首先能多两个东西啊,多一个什么呀,多一个这个提交作者author,作者就是谁提交的,那你还可以看到这个提交日期,你能明显看到你们这个项目是吧,它是经历了多长时间才发布了这么多版本,那是这样的,那我可以我还可以在这个get log日志底下看到这个版本的详细版本号,就是比较长的一个版本号,这个大家都可以,都可以看一看啊。那这个完事之后,那咱们是吧,如果有一天你们老板感觉这个代码就是就是当前比较新的这个版本的代码写的不是很好,他想让这个代码给他穿越回去,我们是可以支持这个版本穿梭的。你就比如说在咱们这个案例里边是吧,我先我我刚开始是一个二一个三都没有,现在我现在加了个二,又加了个三,那就比如说我感觉这个三啊加的不是很好,我想把这个代码给它回到二号那个版本里边去。
02:10
那应该怎么操作呢?你可以这么玩看好了,哎,你可以先通过这个版本信息查看到这个二号版本的这个版本号,你把这个版本号你给它复制下来,然后通过一个命令就是就可以穿越回去了啊这个命令很神奇啊,那通过什么命令啊,就是这个杠杠啊,这个get reset啊get reset,然后然后呢,啊只加一个加一个参数就是杠杠hard,然后呢,跟上你要穿越回去的这个版本号,就这个5770506,那这么一个版本号就是咱们第二个版本,那这样一来我就给他穿越。一旦穿越成功之后看好了啊,那我这个时候干嘛呀,我再次查看这个ref log,你会明显看到这个指针已经移到了第二个版本上面。
03:01
啊,他也会给你多生成一个,因为你是做了一次操作嘛,他会给你把这个日志给你写下来,这个日志大家想看可以看一看,他说了,他说你是moving to,就是你是把这个指针或者是把这个版本给它穿越到了这个5770506这个版本里边。啊,那然后你也可以看后三个,后三个明显你会发现它这个指针发现了,发生了这个偏移,那一旦我这个版本发生了变化,我就可以查看我这个hello.txt啊,你会明显看到咱们这个文件的内容已经是没有那个333了,只有222,说明咱们这个文件它确实版本发生了变化。那除此之外我还可以去哪里看啊,同学们,这个时候我有必要给你们看一下了啊,咱们点开这个get DEMO你去看点啊,你去看一下这个点get这个目录底下,在这个点G这个目录底下有什么东西啊,首先它有一个hit。
04:05
哎,Head这么一个配置文件,然后你右键打开这个head,你会发现它这个指针指向了master,说明你当前是在master这个分支上,那我怎么知道我是在master这个分支上的哪个版本呢?你需要查看这个什么呀,查看这个re FS这个目录,点开这个refs这个目录,然后找什么呀,找这个has,然后这块有个master,在这个master这个目录里边,你就你你这个打开它,明显看到它记录的是哪个版本号啊,是这个5770506这个版本号,那就说明咱们这个指针指向了master分支,而我这个master分支又指向了第二个版本。那如果这个时候大家还没有看懂,我再给你穿梭回去,我感觉这个二写的也不是很好,我想让我的代码回到最初的版本,那怎么回啊,我继续是吧,我来这个先查看一下这个版本信息,然后我复制一下我的第一个版本的版本号,然后干嘛呀,我来一个get。
05:14
然后这个reset res啊,重新设置reset,然后呢,杠杠hard,然后你跟上你这个第一个版本号,然后走,诶,那这个时候我再次查看应用日志,你会发现哎,它的指针已经指向了first commit,就是首咱们首次提交的这么一个版本上面,然后呢,这个时候呢,我就可以再次打开这个master这个文件是吧,我让他更新一下,你会发现这个master分支已经明显发生了变化啊,它又指向了第一个版本,那我一旦我这个指针指向了第一个版本,你就可以查看一下你这谁呀,你就可以看一下你这个get DEMO底下这个hello.txt,你可以打开它,你会发现它的内容也就发生了变化。
06:04
变到哪呢?变回了咱们最初始的那个版本,我不仅可以往前穿越,我还可以往后穿越,我还可以把那个二三再给它变回来啊,给它变个小魔术可以吧,那我怎么穿呀?那这个时候我就复制一下我的第三个版本的版本号是吧,然后给它copy一下,把咱们这个命令你给它调用出来,然后呢,重新把这个指针指向第三个版本,那你一旦指向了第三个版本,然后打开你这个hello.txt,你重新加载一下这个文件。来这位重加载一下,你发现首先第一个这个master文件,它的指针发生了变化,指向了第三个版本,就这个E88开头了,然后呢,咱们的hello.txt这个二三也就又回来了,那这个就是咱们get里边用的最多的一个版本穿梭啊,希望大家把这个好好玩一玩啊,那这个版本穿梭哎,我就暂时先讲到这,哎其实下边还有一个什么呀,下边还有一个这个PPT啊,这个PPT我觉得已经很简单了,经过我刚才的一波演示,你们大概也已经都懂了,首先第一个问题你要搞明白。
07:13
咱们的这个giate它来控制版本,它可不是CTRLCCTRLV给你造了多个副本,它不是这么玩的,它是什么呀?它是在那内存里边,这个本地库的,这个内存里边给你记录了很多个日志,那很多个版本信息,然后呢,他通过调用它那个指针来指向不同的版本,那这个PPT我给大家放一下好吧。咱们看一下这个动画啊。他怎么玩的呀,就比如你刚开始你只是有一个first版本,你只是有一个master分支,那么这个master分支就必然会指向这个first版本,那咱们这个head呢,这个head就是咱们这个目前看到的这个东西,就这个头头指针指向master分支,而这个master分支指向first版本啊,是这么玩的,那后来我又给他写了一个second版本,那我这两个两个指针都会指回来啊,这个master分支其实应该是这个不动啊,这个不动啊,这个master分这个指针从这给它改到了这,就这个master指针指向了second的这个版本,那后来我又来了一个third这个版本,那我这个就又指向third版本,那如果你想给它穿越回去,你怎么办啊,你只需要。
08:24
哎,你只需要把这个指针你给它干嘛呀,你给它指回second就可以了,它是这么玩的啊,它底层是这么玩的,就这两个并不并不会动,它只会调整它这个指针的位置,那如果我想回到最初的版本,我只需要把这个叉掉是吧,把这个指针指向first,诶,那这样一来,那我这个版本也就发生了版本穿梭,哎,那这个这个版本穿梭咱们就给大家讲到这儿啊,希望大家好好体会一下这个G切换版本。底层就是移动的那个head指针啊,那这个给他讲明白了啊。
我来说两句