00:00
在上一节我们提及到执行合并即可自动合并get修改的部分,但是也存在无法自动合并的情况。如果远程数据库和本地数据库同一个地方都发生了修改的情况下,因为无法自动判断要选用哪一个修改,所以就会发生冲突。G会在发生冲突的地方。修改文件的内容如下图。啊,给这个发生冲突的地方加上嗯,一个向左的箭头和一个。一排等号和一排向右的一个箭头。啊,这里这里包括着的就是我们要发生冲突的地方分隔线啊,等号分隔线上方是本地数据库的内容。分隔线等号下方的内容是远程数据库编辑的内容。如下图,我们修正所有冲突的地方,最后再进行提交就可以了。接下来我们来演示一下上一节课DEMO和DEMO的一个冲突啊。
01:05
首先进入DEMO的。本地数据库目录右键。打开G终端。啊,先尝试推推送一下get push。可以看到是一个啊,拒绝推送的一个状态,因为发生了一个。啊,就说我们。线上远程的一个数据库,它的版本有别人的提交的一个记录版本要比我们的本地的数据库要高啊。此时我们要。执行get铺一下把远程数据库的。这个。更新啊,远程数据库的,别人的提交的内容啊,拉取到本地的一个数据库给他库。可以不用设置啊。远程的一个地址和默认的一个分支,因为我们在之前已经使用杠U设置过。好,这时候我们在拉取之后啊,显示的时候就是。
02:04
告诉我们哎,在执行合并的时候啊,自动合并失败。告诉我们这个文件啊,出现了一个冲突。他给我们标记了这个冲突的部分。这时候get无法完成主动合并的部分,我们要手动去修改。来查看一下啊。这个a.T。是吧?发生冲突的地方,他会用啊这样一个一排向左的一个。一排箭头和一个一排向右的一个箭头给我们包裹起来,然后中间有一排等号分割线,上面是我们本地数据库的一个内容,等号的下面是远程啊,远端数据库的一个内容啊,我们要手动更新这个内容,如果这两个内容我们都需要,只需要把这些分隔符删掉即可。
03:00
如果我们只需要某一部分的内容,可以把某一部分的给删掉,也就是说只保留我们需要的内容。如果在实际的项目开发中,比如同一个人更改了同一个文件,对吧?如果他们两个代码都要保留,那我们就啊,都不保留即可,如果只需要一个人的代码,那么我们就删掉,只留一个人的就可以了,好。调整完啊,这个冲突之后呢,保存一下这个文件。因为对文件的内容。进行了修改。所以需要再次进行提交,此时我们可以查看一下当前工作数的一个状态,可以发现修改了a.T啊。也提示我们可以使用get a DB和get commit进行提交来。 geta.T把当前的修改。提交到索引区。之后使用GI。Commit-m把索引区的内容提交到本地的数据库。
04:05
合并。这样我们就完成了从远程数据库导入最新的一个修改的一个内容,并且把有冲突的地方手动进行了一个解决,此时可以使用logo命令来确认一下数据库的历史记录是否准确。指定这个参数。还有这个选项可以让。Get log的这个展示更友好。这个选项可以以文本的形式显示更新的流程图。杠杠online。选项能在一行中显示提交的一个信息。我们来尝试一下这个命令。Get log杠杠。杠杠。
05:03
可以看到啊,这样一个结果。由于这个命令比较长,我们每次使用的话啊,都要打这么长的一个命令,不是很方便。可以为这个命令指定一个别名,方便以后使用。进行设置别名get con、杠杠格萝卜。alice.lg。等于。Log杠杠。尴尬。回撤,这样就给全局的get配置设置了一个LG的一个别名,LG的实际的命令内容是log,然后加上这些参数。以后我们在使用的时候就可以直接使用get LG来以这种的形式去显示get的一个记录,当然通过啊get的一个logo记录,看这里可以发现这两个啊有冲突的地方,对我们进行了一个合并。
06:06
此时我们解决了我们从远程数据库拉取了最新的代码,并且解决了所有的冲突。就可以向远程服务器进行。推送代码进行剖析。下面我们来push一下,试试看get push。可以看到,此时就可以把我们本地的一个。数据库推送到远程数据库了,这表明啊,这两个的这个记录已经进行了一个整合,这个就是从远程。拉取最新的。数据库,如果两个人同时修改了一个文件,产生了冲突的话,我们手动解决冲突,解决完冲突之后,因为修改了这个文件,所以还要再进行再次的一个提交,之后就可以推送到远程的数据库。最后。来,去远程的数据库看一下我们推送的。本地数据库的一个更新。
07:01
刷新一下,先看一下当前是三次提交啊,最后一次的说明是添加库的说明,28分钟前,现在我们刷新。可以看到。就变成了。刚才我们提交的这个。说明是合并11分钟前有五次提交,点开可以看到所有的提交的一个。说明了一个情况。
我来说两句