00:00
来,我们再看一个情况,但凡是团队写作就一定会发生冲突啊,你比如说我们岳不群如果和林无冲呢?两个人都是改同一个文件的同一个位置。那么只有先推送的那个人能够推送到远程库里边,后推送的那个人呢,他就推送不上去了,他必须去,他必须呢先拉取下来啊,然后呢才能够去推送,那么你拉取下来的时候呢,你同一个位置哈,有月不群的内容,有你自己的内容啊,那这个时候呢,K呢就不能替我们去做决定了,必须我们自己去决定,哎这个这个时候呢,就是冲突。我们来给大家去演示一下这个过程。我们现在呢,是在这个岳母群这边哈。呃,我们去对这个文件呢,做一些这个修改,我们到这个第二行下面我们去写一个啊,Edit by乐群。
01:03
然后呢,他去提交到本地库,我们看一下哈,现在这个有没有这个凭据。有我的话把它给删掉。我们以岳不群的身份呢,去给他推送上去。艾硅谷2018版回春。啊,远程连接,稍微等一会儿。好,这个推送完成了。我们到这个网页上来刷新一下哈,就是看我们远程库的内容。
02:00
这是哎,这个操作这个修改推送上来了,然后呢,我们把这个凭据哈。凭据呢,还是给它删掉。然后呢,我们换成换成我们令狐冲去登录,然后呢,令狐冲呢,他也是去改第二行。I然后呢,提交到本库。Conflict呃,提交到各自的本地库都是没问题的啊,但是呢,现在哈,我们。呃,在令狐冲这边,其实呢,他已经比我们远程库的最新版的已经落后了一个版本了,就是岳不群呢,已经做了这个修改,但是呢,令狐冲这边呢,还不知道,他还是在这个旧版本的基础之上所做的修改啊,那你这个时候呢,Get have哈,就不允许你在推送了,他就不接受你的推送了啊,他认认为呢,你现在发生了新的情况,可是你还不知道。
03:16
你必须在这个最新的情况下啊,再去做这个新的修改才可以,那么我们来试一试啊,这个GI如果说呢,我们去这个推送一下。这还是需要去等一会儿。我们换成这个令狐冲的账号,艾特令狐冲。嗯,再稍微等一下。呃,大家一边看我操作一边去想哈,它为什么要这样设定,呃,为什么你不是在最新版的基础上就不接受你提交的,或者说叫你推送的这个数据。
04:00
我们可能登录就有问题哈,我们再重新在命令行里面登录一下。嗯嗯,你看这个时候能告诉我们failed to some reference,你这个呢,推送不上去哈,嗯。你必须呢,先拿到这个远程的这个修改啊,我们必须呢,先执行一下这个这个操作这个master。然后呢,你看这儿呢,又进入这个这样的一个状态,我们现在呢,就处于这个冲突的情况,然后呢,我们去这个文件里边也是能够看到。呃,这一部分和我们这一部分啊,是我们这个呃,产生冲突的这个位置,那其实解决冲突的话呢,我们之前也都操作过啊,把这些特殊符号呢删除,然后呢,把这个里边的文件的内容呢,改成我们需要的样子,比如说就是现在这样我们就接受了,然后剩下呢,其实呃,从我们拉取下来以后哈,和我们之前在分支里边产生冲突的解决的办法是一样的啊,没有什么区别,添加到暂存区。
05:27
然后呢,这个commit这哎这个是我们complete这个地方注意哈,呃,解决冲突之后啊,这个添加了以后呢,添加这个文件哈,解决了冲突。我这回再提交的时候是不能带文件名的,诶这个地方大家要注意哈,这个是不带文件名的去提交。哎,然后你在这个status看啊,这个时候那就是clean,当然后呢。
06:00
我们现在去把它给推送到远程。啊,稍等一下。哎,这回呢,这个,哎这就是推送就完成了,我们看这个页面上咱们确认一下。就多了多了我们这么一行啊,多了这是两行,我们回答一下刚才这个问题哈,呃,我们先记一下这个笔记,我们在笔记里边也总结一下啊,他为什么会你不是基于最新版,它就不能够接受你的推送。嗯。首先哈,关于解决这个冲突呢,呃,我们说这个说一些这个操作的这个要点,第一步呢,如果不是基于GIHUB远程库的最新版所做的修改,不能呃推送啊,他必须呢先呃拉取。
07:15
拉取下来后啊,如果进入这个冲突状态,则按照。分支冲突,呃,解决的这个操作呢,解决即可,这个操作呢,其实没有什么,没有太多特殊的哈,就是我们可能会想哈,他为什么你不是基于最新版所做的修改呢,就不能推送我们给大家呢,拿生活中这个例子呢,做一个类比,比如说呢。呃,我们跟别人呢,去借了钱啊,比如说呢,这个我们,呃债权人叫老王,呃,这个债务人欠债的这个人啊,叫做这个小刘,那么我们这个小刘呢,找老王哈,借了1万块钱,然后呢。
08:21
我这个老王说,老王说你这个十天以后还给我就行了。哎,这个老王说十天后啊,这个归还,那这个小刘呢,他也接受了,双方呢,这个达成了一致,诶但是呢,这个时候吧。这个老王的这个媳妇呢,她又说你要五天以后这个归还,那么这个期限呢,就缩短了很多啊,对这个小刘来说呢,一下子这个压力呢就增加了,这个好大啊,他五天以后可能没办法去还,那这个时候呢,对于这个小刘来说哈,呃,他就没有办法接受这个老王媳妇这个说法,因为老王之前已经跟他说了十天以后还就可以,那你这个老王媳妇呢,说五天以后还,那么很明显的,你这个时候跟老王说的就不一致了啊,那么这个老王的媳妇儿呢,相当于哈,是他不知道老王跟小刘呢,做了一个十天的这个约定啊,他还以为呢,是这个他还在刚借完钱的这个状态呢,去做了这个五天的这样一个约定,那小刘呢,他当然就不能接受了啊啊,所以说呢,这个小刘呢,会跟老王媳妇说是吧,呃,老王呢,跟我说的是十天以后就还就可以,诶你呢,先去找这个老王,你去确认一下这个事儿,那么。
09:49
那么这个时候呢,老王媳妇儿这个呢,他就不能被接受,老王说的呢,这个是小刘这个接受,哎,这个双方呃达成这个一致,那么这个老王媳妇呢,你再说这个五天以后这个归还,那么这个小刘呢就不能接受,哎呃,那么这个老王媳妇儿啊,他需要找老王这个确认后啊,然后这个再执行,这个时候谁相当于谁的,你想我们这个小刘呢,其实相当于我们这个github。
10:34
嗯,然后呢,这个老王呢也好,是老王媳妇儿也好呢,他们都相当于是这个我们的,呃,各个开发人员啊,不同的这个本地库所做的推送的操作,诶这个老王呢,已经推送了一个通知呢,是这个他已经推送的一个操作,就是十天以后归还的这个操作,那么小刘呢,他接受了,那么你老王媳妇儿呢,你说这个五天以后归还吧,不是在老王的这个基础上。
11:00
啊,去这个去修改的啊,你并不知道老王做了这样一个约定,那么你这个你这个你这个所通知的这个事儿呢,我就不能接受啊,你除非呢,是你们你跟老王确认过以后啊,你们两个人呢,保持一致了,说确实是十天以后归还,不行,必须得是五天以后归还,那么呢,我也就只能认了,哎,所以说呢,我们呢,生活中这个来举个例子哈。老王媳妇如果没有跟老王沟通过,诶,他这个不知道,老王说十天以后还,她擅自说五天以后还,我们不能接受,就如同我们这个记哈上面这个远程库,诶,你如果不是在最新版的基础上呃去操作的,那我就不能接受你的这个推送啊,这个事儿呢,大家可以去体会体会啊。
我来说两句