00:00
来,下边咱们来做具体的啊,G的版本控制的操作,首先呢,我们来看一个命令叫get status。关于这个命令,首先我们要说的一点是GI专属的命令呢,都是以getate开始的,其实你看从linuxx的角度来说呢,这个GI呢,是一个主命令,里边status或者是别的是子命令,你后边呢,还可以再带一些参数,带参数通常都是杠或者是杠杠。哎,那。我们现在这个命令呢,它主要要看的它的功能肯定是看status status表示表示状态,那么get status呢,看的就是我们工作区缓存区的这个状态,好我们现在来执行一下。现在呢,他给出了这些结果,我们看看什么意思,第一句话on branch master是说呢,我们现在呢,是在master这个分支上。诶,分支我们现在还没有讲啊,呃,现在呢,大家就知道我们现在呢,默认是有master这样一个分支的,也也有人呢,把这个叫主干啊,这个都可以,然后呢,No commit yet,现在呢,还没有任何的提交啊,因为我们是新创建的嘛。
01:12
然后呢,后边他说nothing to commit也没有什么可提交的,那没有什么可提交的呢,这个,呃,我们先说这个哈,说no commit yet说这个没有任何的已经提交的东西,那其实这个指的是我们本地库里边没有什么东西。因为提交呢,提交了以后是放到本地库里边的,现在呢,他说本地库里边其实没有任何提交过,没有提交过任何的东西。Nothing to commit,没有什么可提交,那可提交的东西放在哪呢?哎,可提交的东西是放在我们暂存区,所以暂存区里边现在也什么都没有,他就说呢,Nothing to啊,所以说这个这句话的意思其实是说暂存区里边什么都没有。那现在呢,呃,在这的话,他又给了一个提示是说这个create,诶这个斜杠表示或者是吧,诶copy files,你创建或者复制文件,然后呢,去使用GII的这个命令to track。
02:12
这个track track谁呢?Track这个或者是files啊,那这track是什么意思呢?是追踪。啊,使用这个get艾这个命令呢,可以追踪我们创建或者复制过来的文件,那这个追踪怎么理解呢?啊,其实我们用通俗的用大白话来说呢,就是让getate去管这个文件啊,就是用get去管这个文件,好现在呢,Get status我们执行了。咱们就按他提示的呢,咱们去创建一个文件,咱们就使用我们最熟悉的vim编辑器,诶比如说我们建一个good.txt。然后呢,在这里边我们随便输入点什么。因为我们重要的不是这个内容,哎,我们还是测试get的命令,现在呢,这个文件呢,是新建的一个文件,新建好这个文件呢,我们再用get status看一下。
03:05
我们再读一遍第一行on branch master没有变,还是在master主干这个分支上,然后呢,No yet,那当然现在我们没有往本地库里边提交过任何东西,那所以说本地库呢,还是没有任何的提交,诶,到这不一样了,Track files。诶冒号后边给列出来,现在呢,这有发现了一个未追踪的文件啊,发现了一个未追踪的文件,你看这个未追踪的文件,你看这个字是红的,非常的显眼啊,非常的醒目。这里边儿它括号里边给了一个提示,对于这个文件呢,我们可以使用get ADD这个命令,后边跟上文件名,然后呢,干嘛呢,To include what will be committed。把它包含到将被提交的那个地方,哎,其实呢,就是使用这个get at这个命令呢,把它包含到暂存区这么个意思。
04:02
然后呢,下边他说哈,Nothing added to commit说你没有往这个要被提交的地方呢,任何的东西。其实就是没有放到暂存区的意思,But attract files present,但是呢,未追踪的文件存在后边还是这个提示,Use get ADD to track to track,使用get ADD这个命令去追踪它,好,那咱们就照它提示的来,Get a good.txt。现在呢,我们看到后边有这样两行打印warning,哎,这有一个警告,他说LF will be replaced by CF in good.tt诶,在这个good.txt这个文件里边呢,LF会被替换为CRLF。这个东西大家有没有一点点似曾相识的感觉呢?诶,那么我们看一下这哈,大家还记不记得这个界面,这是咱们装get程序的时候,其中的一个选项的界面,你看他在这,他说什么呢。
05:08
我们选的这一项是checkout Windows style commit unix lineings,所以在这呢,它就是要决定line endings每一行的结尾是使用什么风格,那么我们他说了是按照Windows的风格检出,然后呢,按照unix的风格呢去提交,你看它后边这个提示哈,Get在这个选项下边。哎,在我们这个选项下面这个gate呢,Will convert LF to c LF when checking out text files when committing text files CRF will be converted to rf。那你看我们现在哈,我们现在这个文件你添加呢,执行了爱的操作以后哈,执行了爱的操作以后,这是将要被提交的,那么将要被提交的呢,它就符合后半句话,就是这个when committing text files CR LF will be converted to LF CRF CR LF会被转换成LF。
06:17
那么你看我们跟跟我们这句话是不是一样的呀,LF will be replaced by CF,哎,那就是LF会被替换为CR,那么反过来说,不就是把CRLF转换成LF吗?啊,所以这个这个东西呢,这个这这个提示哈,这这这这样这样一个提示,就是因为我们这个文件里边这个航模的换行符啊,它会被转换,他他得告诉我们啊,他他给我们相当于是相当于是改我们文件的内容了,他在这以警告的形式呢,告诉我们这个事儿。当然你说我没有在这个行的后边去加这个东西啊,啊这个东西呢,是人家系统底层的文件,底层的东西啊,这不是我们家的啊,这是这个系统系统所决定的系统的文件,操作系统的文件系统啊,它决定的这个事儿,这个是隐含的,我们是看不到的啊。
07:08
哎,所以说,所以说后边还有这么一句话,The fair will have is original lines in your working directory,在你的工作目录里边是是是,呃,是保持它原始的这个航模啊,就是这个跨行符,哎,这个呢,咱们就是解释一下,大家不用这个太在意哈,这个东西其实对我们操作呃没有什么影响。好嘞,现在我们执行完了这个艾添加的这个操作了,执行完这个添加的操作以后呢,咱们来。再用status呢,看一下当前的这个状态。你看我们刚才是红颜色的字,这个good.txt哈,现在到这呢,变成了这个绿色的了,没有那么刺眼了是不是,哎,那么他这个用红色的标记呢,也就是让你更加的警觉是吧?哎,所以这个这个绿色的看呢,最起码我们这个人的这个精神呢,也不会那么也会相对更平和一些啊,就是这个,因为你添加到暂存区马上要提交了诶。
08:13
嗯,他这个没有没有添加到暂存区啊,离提交更远一些的时候啊,他就要带有一定的警告的性质啊,你因为你这个不添加到暂存区,不提交的话,Get也没有追踪啊,你所做的修改,或者说你创建的文件有丢失的风险啊,所以说他,诶这个你添加到暂存区呢,就安全一些了,所以说它从红色变成了绿色。呃,你看呢,现在这个我们这再看一下他status具体的这个信息哈,On branch master还是在master这个分支上,然后呢,版本库就是本地库里边也没有任何已经提交的changes tobe committed,你看这呢,就又变了,哎,现在呢,他说呃,改变。哎,这个是,呃要被提交的改变,就是我们下边列出来的这个什么改变要提交呢,就是这个文件的新建,呃,新建一个文件,这个呢,是将要提交的这个新建文件呢,新建的文件我们已经放到暂存区了,通过ID命令啊,放到暂存区了。
09:15
那么要是。他这还是有一个提示哈,呃,可你可以使用GIRM杠杠cash的file,诶,To stage。他在这呢,并不是告诉你怎么去提交,他在这呢,是告诉你,呃,你这个操作哈,你给他放到了我们的。暂存区里边的,那我现在想后悔怎么办,我想把它从暂存区里边撤回来,哎,我想给他还恢复成刚才之前的这种状态,那么呢,你就可以使用这个GIRM杠杠cash的这样一个命令,咱们来试试啊,GIRM杠杠cash的,然后呢,我们这个文件是good.t。
10:00
哎,那么这个时候呢,它是从我们这个暂存区哈,给这个移除这个文件,我们再get status看一下,你看就又恢复成之前的这个状态了,他又成了一个未追踪的一个文件。啊,所以在这的话,我们是顺便看了一下这个命令。嗯,然后呢,我们建的这个文件他还在哈,他删除只是从展存区里边删除啊,并不是真的是把我们这个工作区的文件删除了啊,他没有没有不会动我们工作区,好,那现在呢,我们在这不是刚才执行了一个get艾,相当于让我们被我们用这个命令给撤销了嘛,哎,咱们就再重新的给他执行一下这个爱啊good.txt。哎,还是重新艾特了一下这个警告呢,还是一如既往的跟跟刚才一样,咱们在get status。诶还是这个是绿字,然后呢,这个RM刚刚开始的,我们刚才也体验了,现在咱们也不用再做了,那么下一步呢,我们要做的事就是这个GI com,我们要去提交了,哎,从展存区呢,给他提交到本地库。
11:07
那么这个时候呢,我们要提交的是good.txt这个文件,那么我们就执行一下commit这个命令。诶,这出现点问题哈。哦,这他这个是,呃,反应有点慢哈,反应有点慢,现在呢,正进入到这个界面是正常的,呃,这个界面是是一个什么样的一个界面呀,哎,他在这,呃他说什么,Enter the message for your changes,呃,请输入。提交的消息,哎,对于你这次的修改啊,这个我们,呃,翻译的顺溜点就是你这次要提交这个修改呢,你需要在这儿呢,输入提交的信息,诶那。在这我们就想哈,呃两个问题,第一个问题是我为什么要输入这个信息啊,啊,他让我们输入,我们就输入呀,为什么要输入呢?诶这个相当于咱们写代码的时候的那个注释,诶你写这个代码是什么意思呢?诶它什么功能呀,它要达到什么目的呀,想实现什么效果呀?诶你加个注释就非常的明显了,我们现在在这呢,让你添加一个提交的message哈,呃,Commit message提交的信息,那这个就是说呢,你去记录一下你本次提交呢,是要干什么事。
12:30
哎,所以说这个提交的这个信息呢,是非常有必要的,呃,下一个问题呢,第二个问题就是我怎么去给他输入呀,呃,我现在这是个在什么什么样的一个界面里边啊,我做这样一些操作,大家看一看啊呃,冒号site nu。看这个地方。这是不是我刚才说的这个指令呀,诶这是干什么用的呀,我是不是显示的行号了,诶我用这个冒号set on nu能够显示行号,这个说明我们现在是在什么编辑器里边呀,哎,对,我们现在是在这个vim编辑器里边啊,它这个get呢,它自动的调用了我们vim编辑器了,因为我们装的时候呢,你看我们就明确的指定过。
13:16
啊,就是使用这个vim编辑器,所以在这呢,它直接就进的就是vim编辑器是吧?诶好了,那现在既然是微M编辑器,那我们就非常的清楚了,哎,现在呢,我们就现在是在一般模式,按这个按键进入编辑模式,我们就可以去输入了,好,咱们现在呢,输入一个消息啊,这是咱们的第一次提交。诶,我们要我们做的事呢,是new fair good.txt啊,我们的第一次提交,我们新建了一个good.txt这样一个文件,好嘞,然后呢,按ESC冒号WQ,哎,写入退出,你看这不都是跟咱们的这个vim操作都是一样的吗?
14:01
好,然后呢,这就等于我们这个commit哈,诶执行完了挺好的,我们再重复看一遍哈,你看这个警告这两行呢,跟我们添加的那个警告呢,是一样的是吧,咱们就不用再看了,诶我们都知道他什么意思了,对我们也没有什么影响,下边呢,我们看一下这三行哈。在这master这是我们的这个主干是吧,然后呢,这是一个root commit root是什么意思呀,就是跟。那你想这是我们的第一次提交啊,第一次提交呢,就作为一个跟提交,诶后边呢,有这么一个数哈,这个是7441214,这个数呢,我们现在呢还嗯不太方便给大家解释是什么意思,总之呢,你就认为哈,他代表我们本次提交,或者说呢,你可以认为哈,粗略的认为这就是咱们这次提交呢,所形成的一个版本号。哎,然后呢,后边你看这个是什么呀。
15:00
哎,这就是刚才咱们写的嘛。哎,你看这个孙悟空在这个如来佛的手掌心里边,哎,跑了好远好远好远,然后呢,他看到几座大山是吧,然后呢,他撒了一泡尿,还提了提了几个字,啊,孙悟空到此一游,然后呢。呃,他去跟如来佛对峙的时候,如来佛就是伸出手一看,你看我手指头上还有你写的字呢,是吧?哎,我们现在就是这个感觉哈,刚才我们输入的这个字,现在呢,我们就又看着了,诶,就是这是我们输入的这个提交的消息,然后呢,你看下边呢,告诉你这个详细的信息,One fair change的一个文件被修改了,Three iners,哎,Three iners,这是什么呀?你看看我们这个文件,我们这文件里面是不是三行,哎,Three insertions,那不就是咱们增加的这三行吗?后边这加号表示你增加了呀,哎,然后呢,Create mode是创建的模式,诶是我们这样一个文件是吧,新建了这样一个文件。
16:04
这就是我们完成了一次提交啊,我们提交的呢,是一个新建的文件。呃,提交完了以后呢,我们再用这个get status,再看一下这个状态,你看呢,On master还是跟以前一样,现在呢,在这呢,Nothing to commit working tree clean。这个呢跟我们呃,什么都没做的时候,那个get status呢又不一样了,现在呢就信息就少很多了,他说nothing to commit commit,那就是我们暂存区里边呢,没有什么要提交的。然后呢,Working trick in,那就是说工作这个目录的这个对应的这个数呢,是干净的啊,那么就是也是这个没有什么东西要提交这样一个意思啊,一个是没有什么东西要提交,暂存区是干净的,另外一个呢,我们工作区呢,也没有什么修改或者新建啊,诶这个这个时候呢,Get status呢,是显示的是这样一个状态。好嘞。
17:00
那下边呢,我们在呃,稍微变化一点点,这个情况,就这个文件呢,我们有可能是这回不是新建的文件了,而是呢,我们去改一下这个文件,呃,我们给这个文件里边呢,加一串这个大写的U写入退出。这回这文件不是新建的了,这个文件呢,是改了的,改了的文件我们拿get status看一下。嗯,还是红字,但是呢,你看这个提示符不一样了。诶,你看在这呢,它检测到这个modified,它检测到,它能够检测到这个文件呢,是被修改了的。哎,你看这个on master不用说changes not stage stage的for,哎,这有呢,你没有存的这个修改啊,没有暂存的修改,嗯,这个是,呃,没有暂存到可以提交的那个地方吗?还是没有放到暂存区,诶在这呢,这个括号里边两个提示,他说你可以使用这个get I的fair这种方式呢。
18:03
去给它添加到暂存区,To update what will be committed,大家我们可以看一下哈,刚才呢,这个词不是这么说的,刚才这个新建完了以后,用status去看的时候,你看他说的是to include,哎,你新建的时候这是include,然后呢,你看我们现在更新了以后呢,改了这个文件以后呢,这是update,所以说这时候呢,他对暂存区呢,做的是一个update的一个操作。啊,你看他有这样的细微的差别。然后呢,还有一个提示,他说get checked out,呃,杠杠fair哈,用这个命令呢,我们可以去discard changes in working directory,在你的工作目录里边呢,去,呃,取消ard就是取消啊,去撤销或者说取消你的这个修改。这个命令呢,等我们一会呢,涉及到这个历史记录的操作的时候啊,版本前进后退的时候呢,我们再去跟另外一个命令对照的,再去说这个checkout杠杠,我们现在呢,先提一下,我们现在先不去测试它。
19:10
诶,最后这呢,他说的是no changes edit to commit,呃,没有添加到可被提交的这个地方的这个修改,因为我们这个呢,还没有去添加到暂存区,诶后边告诉你的啊,再看这个提示,这个提示呢,它说use get ADD。这很有意思哈,这是这个暗的斜杠傲。那么这个这个是这个这个按斜杠二怎么理解呢?哎,你看它后边是啥哈,后边是get commit-A。那么也就是说呢,你可以这个时候哈,你可以是先ADD,然后呢再commit也可以,如果是out的话呢,可以不直接commit。诶,你看这个时候呢,又是和新建文件的那不一样,你看我们新建的文件这哈,它这个提示呢,告诉你说get ADD呢,To track,你要想去追踪这个文件,只能是用get a,或者说只有是get ADD这个命令,才能把一个未追踪的文件,诶呃,去进行这个追踪。
20:16
嗯,去去去对这个未追踪的文件呢,去做追踪的这样一个操作,把它变成已追踪的这样一个状态,但是呢,如果你已经追踪了,那么你可以用get at添加到散存区也可以呢,直接去给他去做这个提交的操作啊,那就是看你了。哎。他有这样的这个区别。那么下边咱们来试一试呢,这个咱们还是这个get艾特一下哈,咱们还是这个呃,因为咱们刚开始学,咱们还是按部就班的来,咱们去把它呢去添加到展厅区。哎,这两行呢,跟以前一样,不用说,然后呢是GI,然后咱们status去看一下它的状态,你看呢,它变成了绿字是吧?诶,呃,这个不用说,然后呢,Changes tobe tobe committed,那么。
21:06
就是这是一个呃,可以被提交的一个修改,因为你放到暂存区了,它就可以被提交,然后呢,Use get reet head file,那么这个地方呢,它又提示你了,你可以使用这个reet啊,Head,呃,这样一个命令可以呢,去age可以把它变成这个没有暂存的这样一个情况,这个命令呢,一会我们还是要去单独的去说一下,所以现在呢,咱们先不管它了啊,它提示就提示就提示吧,那现在呢,这个时候呢,我们这个修改的操作呢,也暂存了,我们现在呢,可以去把它呢给提交一下。嗯,这回这个提交呢,我们说哈,当然你可以跟刚才一样,还是后边直接跟上文件名,那么你直接跟文件名呢,你就需要让getate打开我们VI编辑器,在vim编辑器里边呢,去输入那个呃消息,这本次提交的消息,但是我们现在呢,不想或者说我们再告诉大家一个我们更常用的稍微方便一点的办法,就是我们带上一个杠M这样一个参数,后边呢,在引号里边写上我们的这个,诶提交的这个消息,我们就不用去进那个VM编辑器了,哎,进V编辑器呢,还是稍微麻烦一点,杠M后边呢,比如说写上my second。
22:26
这是。改了一下good,点下器中间这个文这个这个词呢,你自己去编啊,你觉得怎么去看着能清楚明白,你就怎么去写就好了,好,我们去这个执行这个命令,诶你看这时候呢,就不用再去进那个vim编辑器了,是吧?呃,这两行不用去看,然后呢,你看这个master。呃,是说在我们master主干这个分支上面,现在呢,提交到了这样一个版本,诶后边是我们的这个消息,你看在这哈,这个地方和我们刚才又不一样了,刚才你看这是root commit,你现在就没有root了,是吧?因为那你跟嘛跟跟提交,它只能有一个,这就是我们的根提交啊,那么这个呢,是在刚才那个跟的root commit后边的一个commit。
23:20
现在呢,你看最后这个详细信息是one fair change的有一个文件修改了one inertion,诶有一个有一行增加了,诶我们我们这个呢,就是增加了一行是吧,诶这写了一个加号。呃,这就是我们添加和提交呢,还有这个查看状态啊,他们相关的这样一组命令,诶,我们给大家呢去演示了一下。
我来说两句