00:00
我来介绍一下远程数据库的一些操作。首先看一看。在入门篇也就上一节课,我们也讲过执行库可以取得远程数据库的历史记录,接下来我们用图来讲解一下数据库提交的一些细节。首先确认。更新的本地数据库分支没有做任何的一个更改。这时候啊,如果执行P就是一个快速合并,图中的这个must是本地数据库的must的分支。这个master是远程数据库的master分支。我们来看一下这个远程数据库的这个分值,有AB,然后还有XY。这个是远程数额的一个分支,而我们的本地只有AB可以看到。远程数据库分支的这个历史记录包含了我们。本地。这个所有的一个历史记录,此时就可以进行一个fast。
01:01
啊,合并快进合并。在合并之后,就是如下面这样的一个图。啊,有一种情况是我们本地数据库的master分支有新的一个历史记录,比如说CD,而远程数据库呢,也有两个新的一个历史记录是XY此时进行合并的话,啊,因为远程数据库的这个。历史记录。并不包含。并不全部包含我们本地的master分值的一个历史记录,所以这时候不能使用这个fast快进合并,只能进行提交合并。这时如果没有冲突的修改,就会自动创建合并,并生成一个新的提交。如果发生了冲突,需要先解决冲突,再手动提交。这个就是远程数据库和本地的这个数据库,他们存储的历史记录不一致的时候啊。会生成一个。提交。
02:00
如果有冲突,我们要修改,再手动提交,如果没有冲突,会自动生成一个提交。再来了解一下泛。执行pull命令。远程数据库的内容就会自动合并,但是有时候我们只是想确认一下本地数据库的内容。而不想合并。这种情况下可以使用fe。执行fe可以取得远程数据库的最新的历史记录,取得的提交会导入到没有名字的分支,这个分支可以从名为fech退出。例如在本地数据库和远程数据库。如果从B进行。提交状态下执行泛起。就会形成如下图所示的历史记录。我们来看一下这个图。如果以这个B节点为分叉,我们本地的。历史记录记录了C,又记录了这个D,而远程的数据库别人记录了X和Y,但是此时我们并不想去合并远程数据库的X和Y,这时候我们只想看一下远程的这个数据库别人有什么样的一个。
03:13
啊,历史记录。可以使用fe命令,当执行fe命令之后,会从远程数据库取得远程数据库的啊,历史记录,并且放到这个。啊,Fe和hier的一个空分支里面。在这个状态下,如果我们想要把远程数据库的内容合并到本地数据库,可以使用合并fetch的方法啊,也可以重新执行负都是可以的。这样的话,就会把远程数据库的历史记录和我们本地的这个历史记录做一个合并。合并后历史记录会和铺相同。实际上。P的内容就是fe加墨迹的一个组合。再来看一下吐血。
04:01
从本地数据库push到远程数据库时。要fast合并push的分支。如果发生冲突。Push会被拒绝的,若要共享在本地数据库创建的分支,需要明确的push。也就是说,我们如果想要把本地创建的其他的分支啊,推送到远程的数据库,需要明确的啊,指明要push那个分值,因此如果没有执行push,就不会给远程数据库带来影响,我们可以在本地数据库自由的创建自己的分值。注意,基本上远程数据库的共享的提交是不能修改的,如果要修改和远程数据库同步的其他数据库的一个历史记录,就会变得很奇怪。接下来看一个综合实例。先打开我们的。本地数据库。
05:00
看一下当前所处是不是ma的分值,如果不是,我们切换到ma的分值。Must的分支好。然后在远程数据库平台创建一个名为air market数据库。并且为本地数据库设置远程数据库的一个连接地址,设置别名为。在这里。创建一个数据库。直接创建。创建完成之后可以得到。这个远程数据库的一个地址,我们复制这个地址。之后。设置远程仓库的一个地址,并且设置一个别名get remote.dd添加一个呃,远程仓库的地址,并且设置名字为OK。
06:10
地址为。粘贴复制的这个地址啊,好,这样我们就为当前的这个本地的数据仓库设置了一个远程的。啊,数据库地址。接着。我们把现在本地的这个代码推送到远程仓库,使用get push-UORG。Must,第一次推送要加上杠U参数啊,指明你要使用的远程仓库的一个地址和推送的一个分支。在以后的推送就可以不用再加这个杠油参数了。也不用加这个远程仓库的地址和分支,默认会自动使用啊。这个远程仓库地址和master分支。
07:05
已经推送成功。我们刷新一下远程仓库。可以看到有了这样一个文件。之后。我们在这个我们的工作目录啊,工作目录和。这个l monkey这个本地数据库同级的地方。在这里使用右键打开一个新的get终端。在这里使用get克隆命令。从远程。数据库。克隆一个。代码。粘贴。并且取个名字为l monkey2。
08:02
已经克隆完成。啊,这样的话,我们这个目录里面就有了一个LK,还有了一个M和二。我们在。L monkey2这个里面啊,增加一个内容。L。ONE2保存。增加完内容之后。啊。把这个关掉。我们在l monkey2这个目录里面右键打开终端,因为我们从哪个地方打开终端的话,它会自动帮我们进入啊这个目录下。当然,我们可以使用Linux的命令,比如说CD进入。看一下当前的一个状态。是修改了这个文件提交到索引区。提交到本地。数据库。LK2。
09:02
啊,接着推送到远程的一个分支。Data push。已经推送了远程分支,我们去远程分支看一下。刷新一下,先看上一次的,只要还是修复 bug32分钟前的,此时我们刷新一下。那这个时候就变成了我们l monkey2的一个啊描述也是刚刚提交的。也就是说我们现在的远程数据库已经有了一个更新l monkey2写了,啊,一句话更新到了这个远程数据仓库。下面我们回到。L monkey1这个里面注意这里啊,这里是这个目录是l monkey。也就是我们一开始的这个目录。也增加一些内容去提交啊,我们用文本编辑器去写吧。找到这个目录。去这个里面啊。我们刚才是在这个里面写了一行内容,并提交到了远程的数据库,现在是在这个里面去写。
10:03
去写L。K1。保存。关掉啊。在这个里面看一下它的状态,这是我们刚才写文件的这个目录啊。看到它是一个修改的一个状态,也添加到索引区,然后提交到本地的数据库。一啊,尝试去推送到远程的一个分支。这个时候就不让我们推送对不对,因为远程的分支在之前被这个l monkey2啊给更新了一下远程数据库存储的历史记录。啊,并不包含我们当前这个本地数据库所有的历史记录,所以啊,不能进行。
11:01
快速合并。再说简单一点,就是说远程数据库所记录的历史版本和我们现在。所在的这个本地数据库的历史记录的版本不一致,所以不能进行推送。我们。可以先拉取一下远程数据库的。历史记录。可以看到自动合并失败,说明有冲突。从这里的状态也可以看到当前所在master分值,并且所处的一个进度是me合并中。这个时候我们看一看当前的一个状态。好,看到都修改了这个文件,那比较一下这个文件的一个异同。发现确实是有冲突,在编辑器里面去编辑这个文件,把冲突修改掉,注意现在是所在的是l monkey目录。把这个冲突给修改掉。
12:07
之后保存。进行一个提交。Get。是在monkey monkey blue啊。啊,Feel get commit。从远程数据库库好。查看一下你的状态是干净的啊。这个时候。提交完之后就可以推送到远程数据库了,在解决完冲突啊也提提交完之后就可以推送到远程数据库get。
13:01
可以看到远程数据库已经推送成功,这个时候来刷新一下。可以看到这个说明已经变了啊,提交也是刚刚提交。此时我们回到l monkey2,啊,L monkey2呢,他现在并不想合并远程数据库的一个内容,他只是想看一看远程数据库。都更新了什么历史记录?他可以先执行这个命令。GI mini会把远程数据库。所有的历史记录放到了一个空的一个发的分支执行,看一下。可以看到啊。看一看当前的一个本地的一个历史记录。啊,只有M2并没有。嗯。刚才提交的从远程数据库进行库的一个操作,这就是泛的一个操作,再来看一下fe的一个操作。
14:06
他只是把远程的一个历史记录给放到了我们的一个空的泛起的分支里。啊,我们如果想要合并。远程数据库的一个分支,此时可以执行get more or must。因为我们已经用fe把远程。数据库的一个历史记录给拉到了本地,就可以使用get墨迹命令了。啊去合并,当然CTRLC结束掉,还可以使用什么呢?还可以使用get p直接从远程去拉取最新的一个分值,CTRLC结束掉,我们这次试用一下。Get墨迹or减?然后must看一看。诶,是不是也进行了一个fast的一个快速合并,而且历史记录本地历史就看一下。
15:00
是不是之前别人的这个提交。也在这里。现在来看一下当前分支的一个情况,Get b。加上杠A参数可以显示所有的分值,包括。刚才我们使用fe从远程数据库取得的分支。可以看到当前所在是master分支,而这两个红色的是remote,是远程的啊,这个分支远程的head,而这个是远程的master分支。只有加杠A才会显示两分之。这也就是我们刚才使用了fe命令,他把远程数据库的一个历史的一个记录给拉到了本地的这两个空分支啊,所以用红色的表示。通过这个例子。我们介绍了。和远程分支进行交互的比较常用的三个命令。Get push get such和GI push。分别啊,了解一下他们三个之间的一个区别。
16:00
和应用的一个场景。
我来说两句