00:00
我们再说下一个操作之前,我们再来看看这个命令本身哈,这个命令呢,可能会让大家有一点点疑惑,这个re很好理解,就是重置,重新设置啊,这个也符合他这个命令的功能,但是后边这个参数哈,写了一个杠杠hard。Hard不就是硬邦邦的吗?诶,那么这个重重新设置,我这个版本的这个操作为什么还分这个软和硬呢?诶是不是真的在我这个hard之外还会有一个软的这样一个重置呢?诶还真让你说着了。它还真的有一个,另外有一个参数呢,是一个叫soft啊,甚至还有一个参数呢,叫mix,我们下边呢,来看一下哈,我们这个get呢,可以可以使用这个help这个命令,加上一个具体的命令查看它的文档。这个文档不是在线的哈,你看从这能看出来,这是一个我们本地的,哎,呃,这个时候呢,这个文档呢,就是说的就是我们这个命令,我们就不一个一个看了哈,咱们看一下这个有这样,呃,这这三个参数,这个杠杠hard呢,就是我们刚刚用过的。
01:10
跟它相反的呢,有一个这个soft,诶然后呢,有一个mix表示混合的,那这三个分别是什么意思呢?诶咱们这个参照着笔记哈,咱们来这写一下,这个呢是我们这个命令的三个参数对比。我们有一个这个参数。是两个减号哈,Soft这个参数有两个减号,这个mix这个参数有两个减号,这个hard的这个参数,我们看一下文档里边的描述,这个soft这个参数呢,说的是does not touch the index file or the working tree at all根本不会去碰触这个index file和这个working tree。
02:01
这个index fair和working指的是什么呢?Index fair呢指的是我们暂存区,Working呢指的是我们工作区,哎,所以说呢,它不会碰暂存区,也不会碰工作区,那他碰的是什么呀?对,那他除了工作区和暂存区之外呢,我们另外一个区域呢,就是我们的本地库,所以说solve的这个参数呢,仅仅是在本地库移动一下这个指针啊,它仅仅只是移动一下这个指针。移动我们这个head指针。另外一个呢,我们看这个mix这个参数哈,他说呢,他会重新设置暂存区,但是呢,不会去碰我们的这个工工作区,哎,所以说呢,他要呃,他呢一方面会在这个本地库移动我们这个hi的指针。另外呢,它也会这个。嗯,重置我们的这个暂存区,诶所以说他这个你看比这个soft啊,它这个多了一个操作,诶也就是说呢,我们可以感觉一下哈,它比这个soft呢,其实就硬一些了,然后这个hard呢,它是暂存区和工作区呢,都要会被这个重置掉。
03:17
哎,所以说呢,它有三个操作,一个是在本地库移动这个head指针。呃,一个呢,是需要去重置我们的暂存区,还有呢,它也会重置我们的工作区,这么样,我们就是对比的这样这个三个参数哈,下面呢,咱们来运行一下这三个参数呢,咱们去体会一下。我们还是调出来我们GI这个relo哈。你看我们现在呢,是在这哈,现在是在这,那么呢,我们用这个reset命令的soft参数给它软绵绵的给它移动到我们这个这个版本吧。移动完了以后呢,我们在GI GI log看一下现在这个本地库里边哈,指向的呢,就是我们刚才操作的这个位置啊,它对应的这个版本库的这个记录,本地库的记录,呃,但是呢,我们这个看看我们这个本地哈,看看我们这个本地的文件,它还是以这个E为最新最新的一行,也就是说其实还是我们这个版本的状态。
04:25
哎,本地本地这个没有变,那暂存区呢,暂存区怎么看呢?我们用status去看一下。诶,你说不对啊,咱测区这怎么变成绿字了,诶这这个这个绿字不是表示它这个有变化吗?呃,这个呢,我们得跟大家这样去解释哈,这个为什么它变成了了绿字呢。我们说三个区域哈,一个是我们工作区。一个是我们展存区。一个是我们本地库。
05:02
这样吧,我们本地放这哈。本地库。本地库暂存区,工作区有没有这三个区域哈,现在呢,我们这个so的这个命令呢,它在本地库移动了指针,它相当于哈把这个本地库呢,原来呢,这三者是一致的啊,如果working tree clean,它这三者是一致的,现在呢,我们把它呢往后移了一个格。就是移动了本地库的这个指针了,那么它往后了呢,相对的你看是不是这个暂存区跟我这本地库哈,它就这个就不是这个直接这个对应的了,就是它这个对应关系呢,就被这个原来的一致的对应关系呢,就被打打破了暂存区呢,它里边存的那个最新的那条记录哈,是。并没有,并不是并没有提交到我们本地库现在指向的这个位置,或者我们简单说哈,本地库往后退了,就显得这个暂存区呢,它好像往前了。
06:00
喂。这就是为什么这个暂存区哈,它变成绿字,其实不是它自己变了,而是这个本地库里边呢,它这个指针的位置发生了变化。我们再看一下,那如果是我们这个mix,如果是这个mix这个我们新来一下这个,那么我们这个giite。刚刚mixed我们让他呢,去移动到我们这个这个地方啊,咱们随便找一个。以G呢,以这个G啊为这个最新,呃,最新最新一行的这个状态。回车,那么我们看一下哈,看一下我们本地,本地还是没有变,诶这个soft和mix呢,都不会去修改我们本地的文件,但是呢,我们这时候去看一下我们这个暂存区get status哈。你看它变成红字了。
07:01
诶,这个红字又怎么理解呢?它这个哈,相当于呢,这个本地库呢,它有了移动哈,嗯,就是说这个,呃,如果我们以这个状态为为基准哈,他这个相当于是这样。本地库呢,发生了这个变化,比如说它往后走了一个格,然后呢,这个mix呢,不光移动本地库的这个指针啊,它这个暂存区呢,它也往后一个格。诶,那这个时候呢,就显得这个工作区呢,他好像是往前走了一个,其实不是他往前走了,而是他俩往后退了。我们经常在电影电视里边哈,看到这样一个有点搞笑的这样一个桥段哈,比如说呢,前面站着一排这个一排士兵,这个长官呢,现在说有一个非常危险的这个任务,你们谁主动申请想要去执行这个危险任务呀,这个时候呢,前面这十个士兵呢,其中有九个往后退了一步。
08:00
另外一个呢,还剩下一个呢,他其实没有动别人往后退了,就看起来好像是他往前的似的,哎,这个时候这个危险的任务就落落在了他的头上了,是吧,所以说我们现在呢,其实也是这样哈,我们这个如果是soft这个参数,那么相当于呢,只是把这个本地库往后。诶往后或者是往前吧,这个它挪动了一下,然后呢,如果是我们这个呃,Mix的这个参数呢,它会把这个暂存区呢,也给这个往后移动一步,那么就这个时候呢,Soft命令它会把这个暂存区给凸显出来,然后呢,我们这个mix这个mix这个参数呢,它是把这个工作区呢给凸显出来。啊,所以说这个时候呢,是这样一个状态。当然那如果是我们刚刚哈的这个参数呢,是这这个这些这三个地方呢,是一起动一起动,那就是还是保持是同一排是平齐的,谁也这个谁也突出不出来对吧。
09:01
诶这个呢,其实我们说哈,咱们另外这两个参数呢,应该说用的也很少啊,咱们只是为了帮助大家去理解我们这个哈的这个参数,诶我们就是跟这个soft和mix呢,我们去对比了一下。
我来说两句