粉丝6665获赞3.5万


给大家分享一下 ada 装这个使用的小技巧,之前有粉丝问到过,就是说多条肯定的或者 pose 的一个记录,我们怎么去给他进行一个合并啊?什么意思呢?就是说啊,我们可以看这里,我进行了四次提交,对吧?这四次可能是针对于一个 bug 的修改,然后呢,其实我在不停的修改之后,我想把这个四个合成一个提交啊, 这样的一个需求应该怎么去实现啊?其实是可以依赖于这个瑞贝斯和这个瑞塞的,这两个指令都是可以做到这个事情的,然后我们就来稍微演示一下,呃,先做一个简单的说明啊,这边的话每一次提交啊,其实我都是在我这个文件上啊多输出了一行这个输出啊, ok, 然后呢,我们这边首先先进行一个瑞贝斯的一个演示啊,啊,现在这样,我要把第三次提交和第四次要先进行一个 合并,然后我选中这个第三次提交啊,我们进行一个右键的一个呃,瑞贝斯方便面,然后呢,这个地方是可以选中的,你这样选中第四次提交,然后去进行一个 fissapp, 然后我们修改一下这个提交文案,双击点击就可以啊,然后说是合并啊,合并三四次, ok, 这边改完了之后呢,我们就进行一个死大腿的微信啊啊,这时候你会看到其实形成了一个新的一个考秘特,对吧?然后我们这时候需要呃,使用一个 poss 功能啊,不是普通的这个 poss, 是点那个下达箭头,有一个 focus, 一个铺式啊,当然你如果说是 max 分支的话,然后在 ad 中其实是有一个默认的一个分支保护规则啊,你找到这个 get, 然后你们默认的话可能是这个样子的, 然后你要把这个东西删掉之后才能提交到啊,要不然他会受一个保护啊,这时候我们来进行一个提交啊,啊?提交之前的话,我们先看一下这个,我在啊 get 这边去。呃,看这个提交记录啊,其实是有呃三次的,四次的,对吧?然后我们稍微提交一下, ok, 好,我们可以看到本地的一个提交记录,其实啊第三四次已经合并了,对吧?然后内容的话也是合并过的一个内容,然后我们来看一下这个给谁意义上这个提交记录, ok, 他也和我们本地的做了一个同步,对吧?是一样的。嗯,那我们再来演示一下这个 resides 啊,然后我把这个第二次和这个第三四次的提交 进行一个合并啊,但是瑞塞的这边的话,你要选中这个第一次,然后啊进行瑞塞特的一个操作,然后默认的话其实是这个 max, max 默认是 max 的,然后你进行一个雷塞特, 呃,他可是位置有点不同,其实这时候他是把你代码的一个变动拉到本地来了,你你也可以稍作一些修改啊,然后我们这里的话不进行任何操作,然后再进行一个,呃,提交啊,提交的话这边文案也改一下。 oktop, 好,啃蜜桃完了之后,其实我们可以观察一下这里,其实它和刚才的瑞贝斯差不多,也是生成了一条这个啊啃蜜桃,对吧?然后我们进行一个 pose, 也是使用 pose pose 强制提交。 ok, 这时候其实我们可以看到这个提交啊,也合并了,对吧? 这个地方打错了,二三四次啊,我们可以看一下,其实是第二次提交和第三四次的话都放到了一块去了,对吧?然后我们来看一下这个地方 啊,他也是合并调,对吧?然后其实我们有时候还会有一些需求,比如说啊,这几次我不要了,对吧?不要的话其实也是可以实现的啊。我们借助于赛特的一个功能,然后你选择这个他的,然后进行一个比赛的,其实他就可以把你 之前提交,那有时都删掉,对吧?删掉了之后你再进行一个,呃,强制提交, 然后这个就没了。 ok, 本地的已经没有了,只剩下我第一次提交的一个记录,然后我们看一下远程的, 对吧?这边提交记录也就会被删掉。好,今天呢,分享就到这里,我们下期再见。

啊,大家好,今天给大家录制一期 get 操作,也是我们平常工作中经常遇到的一个操作, 看一下,看一下场景,就是如何取消对的已经 app 的文件和已经呃提交的文件,但是还没有铺设的文件, 这两个场景分别是是具体是代表什么呢?就是说我们有时候发现一个新文件, 比如说现在一个文件夹被给的已经管理了,这是我们新创建一个文件,但是手滑,然后把它给 a d 掉仓库,给了仓库了,被被给的仓库所管理了,如果 如果是我们没有做任何操作的话,他肯定会被推送到那个原装仓库,这时我们需要把它给取消掉,取消关联, 当然我们可以用那个对的一些命令,命令好像操作,但是非常不方便啊,这里边我们用 id 操作 ida 非常方便,而且基本上不会错过, 因为你用命令盘的话,你需要先看 logo, 然后呃,然后再根据 logo 那个他有一个生成一个呃 logo 那个标识吧,然后再再再返回海南,然后 之类的,非常麻烦。我们看一下阿迪怎么操作,阿迪非常方便。嗯, 看一下啊,下面我这个是一个呆萌啊,一个给的一个仓库,呃,然后我新建一个文件,打平了,新建一个一点 tst 啊,这时候他会默认,他会提示是否要提交到给的仓库,这时候我们先不呃,不提,不提啊,不让给他管理,然后这时候我们搞一个,随便搞一些东西, 安顿之后,这边我们看下面啊,下面这边有个五八种管理,就说明你的文件还没有被 给他给提交的,给他给管理的说这是我这这这正常,但是有时候我们, 比如说我们 添加了这也不是 app 操作,看到没有?我们已经被被他管理了,被他管理的只有 add, add 之后这边变成绿色了, 就说明已经 a、 d、 d, 但是但是还没有卡妹子,本地卡妹子。呃,这时候啊,这边已经变成绿色了,这是我们,呃,如果到这一步的话,我们就是误操作,有 a、 d、 d, 这时候我们应该怎么取消呢?就是很简单,右键, 然后重置废了,当然你们那边肯定是用的,这边应该很好的,就在远程这边重置,然后这边 点一下就行看点一下,点一下,之后这边就变成无版本操作了,就说明他已经从盖上, 然后已经取消关联了,这是 a、 d、 d。 无操作, a、 d、 d。 非常简单。然后再看一下卡密的,然后还有这五件,比如说我卡密的,我卡密的,我,比如说我 测试, 我搞一个注册,然后直接提交, 这这事我已经提要了。呃,就是 先给滴滴,然后再开灭灯啊,这边滴直接一步一步走了,然后这边已经是没有文件的啊,这时候我们该怎么办啊?哎,也很简单。呃, 然后还是重置,但这个重置的话,我们需要用菜银银四 app 了,银银四靠密的,靠密的。之后他会有一个日志啊,比如说你看这样,你点他,点他之后,这边会有一个 提要日志,一个记录就套就这玩意。所以说,呃,这时候啊,我们是需要返回,返回上一步,然后我们还是这个冲着开的,不过是最后我们有一个拨浪号,然后上一一, 然后也可以,当然也可以, 这个也上一步意思啊,当然这个的话,这个的话可以 一二三四,然后可以往往上回退好几步,但一般我们通常都是一就可以了,回退上一步,及时发现,及时止损,然后就点重置啊,看一下这边操作啊, 充值看见没有,这个一又又取消了,这个还是回到了五版本控制这块,就说明他已经从上一度的可密的,然后就已经返回上一次可密的之前了。 说白了就是将你这次上一呃上一次拷贝的一个内容,比如说你卡密他的好几个文件,然后他这直接返回到嗯,卡密的之前, 非常实用啊,在工作中你是百分之百会遇到的这种问题, 因为我们一般误操作的话,我们不及时处理的话,要搞一些乱七八糟的文件提交上去会很很麻烦一件事情。 好,今天就分享到这里。

哈喽,大家好,每天分享一个经典面试,今天分享一下 get 中操作, get report 和 get reset 这些的区别 啊,我们举个例子啊,比如说我们现在有三个小伙伴分别提交了三个呃操作啊,这样的话就是当我想撤销第二个这操作的时候, 那我们如果是使用 get reverb 操作的话,就相当于我们会把第二个提交呃撤回,然后再创建一个新的提交 啊,再将啊原先修改的东西进行还原,这样我们的版本的履历里面,比如说我是有原先有三次提交履历,再加一次我撤销的一个提交履历,如果 我们使用 get reset 操作的话,那这样的话就是我们第二次撤销之后,相当于只会保留第一次提交的这个履历啊,他同时会修改我们的这个提交的一个履历。 所以说以上就是这两者的一个区别,我们综综上所述,我们 get re rever revert, 它会修改提交履历,它只会保留 re rever reset 对应的这个版本号,之前的保留,后面的话都会 删除掉。然后我们 get revert 呢,它只是删除对应的这个版本号,然后再创建一个新的提交,然后进行啊,让我们看到的履历的话,会多了一个提交履历。好的,今天的分享就到这里。


我们再来看一下这个第二个问题啊,就是如何解决我们这个冲突。解决冲突的话我们先看一下这个冲突是怎么发生的。比如说我们现在的话有一个远程的,当然就是在这个远程的话,大家就是把这个当做是一个人,就是一个张三条代码。好比如说这个张三的话 把第一行代码改了,就是两个人对同一行代码做了更改的话,就会产生冲突,就是他改了,你也改了,这时候的话,就比如说张三的话,这边的话张三然后一一好,这时候改成张三一一了,他就被我们提交了 好比如比如说现在这个李四的话不知道我们继续啊,就是在这面好,这个他还以为是这个,然后他不知道这边的话他他也改了。这边的话李四,比如 改的东西就是第一次好,然后把它改成二二了,好这首吗?然后他保存,然后改成嗯爱的的,然后把他也提交了 修改啊,修改了,修改之后他做了一下 gettypose 好,然后更新远程的一个代码,好,这时候的话大家可以看到就发生了我们这个冲突, 他说哪个文件发生冲突好了,我的他们就是看一下这个好,这边的话他就产生了这个冲突。大家可以看到 这个冲突的话就是说前面这一部分就是焊的,后面的这一部分的话就是你自己的一个修改隐私的一个修改,然后后面的这个抖号,后面的话就是说 是一个远程,你更新过来给他一个冲突,比如说我们现在的话解决冲突要么你就要这个理思性过来的,要么就要你自己的,我们首度解决一下,如果说两个都要的话,你就把中间这些东西全都删掉,然后把它保存。如果说只要一个的话,那你就比如说不想要 张三的话,你就把它删掉,然后把你的提交,如果两个都要的话就保留,然后改成我们看一下啊。好,这首话他说改了,我们给他提交一下吧,改成 app 解决冲突,然后的话贴这 pose, 我们 pose 一下,然后把东西提交到远程仓库。好,这边的话也 应该就改了。好,这时候还就要的意思,我们再给他铺试一下,应该是最新的。好,这时候的话冲突就已经解决了。我们再来说一下怎么样回退到指定的一个版本,比如说我们现在的话修改一个文件吧,就是这面再添加个都行。 嗯,贴啊一好,这时候我们把东西都已经提交了,给拆 add 吧, 这边只有随便选的东西, 然后的话这时候的话已经提交到本地仓库了,比如说我现在回推的话,用这个该车提高的车,尴尬肯定是回推不了的。我,我想回推到之前那个版本,怎么回推呢? 看一下啊,现在提交记录, 我们用这个面来看一下, 当前这个就是我们刚刚写的这个被褥,随便写的,就是当前的害的所在位置,就是最新的一个 一次提交的一个记录。好,我们回到上一个版本的话,我们就可以直接输入他或者是我这边也给大家写了,就是我们需要指定回到指定的版本的话,我们就可以跟一个 就是当写 ad 的一个名字,或者比如说你想回到这边这个提交记录的话,你就写他,比如说 get breathe santa, 然后的话 hadrd 把这个名, 然后把它跟上,然后就可以回到我们这个对应的一个就是提交的一个记录,比如说我们回头的他的话就直接输入他就可以了,一个杠杠,然后大家可以看到现在的话就回到这个版本了, 我们看一下啊,就是说他现在的话已经大家看啊,就是之前这个风质指向的话就是备注是 ss 这个,但是现在的话他说已经更新到这个哈喽沃的,就是更新了哈喽沃的这个版本之前了。好,那那我们怎么样回去呢?就是我 这首的话,大家可以看到就是之前我们这个提交的这个季度已经没有了,我们怎么回到之前那个版本呢?我们这边的话给他给我们提供了一个,就是我们可以用 refer 这个的话就可以看我们这个提交的就是我们执行的一些命 你的一个记录。好,这时候大家可以看到,就可以看到我们这边执行的所有命令,我们做哪些提交原始的是什么啊之类的,都会有这个分支的一个版本号,我们只需要把这个版本号说一下就可以了。 比如说我们之前的话那个版本的话应该是多少了?应应该我们知道的话,就是如果说没有关屏幕的话,我们就可以直接输入他就可以了,如果说我们关了屏幕的话,我们就在这边找一下就可以了, 我们就在这边的话就可以找到他的一个就是之前的一个版本的一个季度,我们还记得就是他这个,这一次提交的一个季度就是 ss, 然后对应的版本号就是他不是说我们没有了就可以用这个命令,然后 get 有钱财,有钱财 然后的话把这个输进去,好,这时候的话他就又回到了之前那个白本,这就是他的一个白本的回退。


出一个面向企业编程的系列,主要是去讲解我们比如说在公司里面上班常见的一些技术站,这些技术站主要是解决哪些问题,以及我们相应的一些编程用到的一些工具。 比如说相机的是我们必备的一个技能之一,它的作用是帮我们去存储以及管理代码。比如说 我们在公司上班的时候有多个同事,那么这同事之间提交的一个代码就需要我们有一个工具去管理,他比如说我要去开发一个商城,那这时候我要去写一个订单模块的功能,旁边的同事他要去开发一个优惠券功能。 在同一个项目里面,那么我们两个同事之间的一个代码就是如何去最终合并,那就交给记得这个工具帮我们管理的。在记得中有一个远程仓库,也就是说我们将代码写好了之后,我们需要提交到远程仓库中,同时就可以从这个远程仓库中拿取相应的代码, 那这时候我们就要去学会如何去拉取代码,以及提交本地。我们写好的一个代码,以及你和同事之间在同一个文件上进行修改的时候,那这个时候会产生一个冲突问题, 比如说有两个同事在同样代码上进行相关的修改,那这个时候要用谁的呢?就需要我们去手动的去选择去合并相应的代码。 已经我们提交代码之后发现代码写错了,我们如何去撤销?已经我们提交了很多次版本之后,发现曾经某一个版本内容写错了,我们如何去撤销指定版本的内容相关的工具,比如说我们在 window 上有这么一个小乌龟,它是图形化的,可以帮助我们去拉取代码、合并代码 以及说是税,功能相对而言比较多一点,也是企业中用的比较多的。还有我们在使用 ida 开发的时候,其实像这些工具也集成了我们默认的一个 get。 另外我们要去了解一下 gataprp 以及 gata 意义,这里面存储了大量的一些开源项目,值得我们学习。

大家好,上期视频我们简单了解了关于 get 分支在项目中的作用,那么今天呢,我们来仔细研究一下一个真实的项目应该来如何设计 get 分支的开发模式啊。这是一个 max 的分支, 他已经有了五次的提交,模拟上一期的情况,我们这里创建了两个分支,一个是飞驰奥的,一个是 facebc, 他们各自都有两次自己的提交。那么当我们把 bug 改好以后,需要把 fax 分支合并到 max, 那么由于 gtt 底层的合并是要创建一个新的提交,所以就叫卖纸看名字,然后把它合并过来, 这同理呢, c 车奥的未来改好了,也是要合并到马斯塔。好,这就是昨天的情况。那这样会有一个问题,就是公司里面绝大多数的项目是有测试环境的,我们在上生产环境 之前还需要上一半测试环境,那么这时候我们应该把哪个粉值变异上到测试环境呢?飞驰奥的肯定不可能了,因为我们要测的是 fax abc 这个代码, 那么要么就是上 fax a, b、 c, 要么上马斯坦,这俩哪个都不合适,因为我们要想上马斯坦,需要把费克斯合并到马斯斯再去上,否则上去的也没有这次修改的代码录制的时候没有说完整,如果将没有测试通过的代码合并到 macs 是一件极其危险的事情, 那么上费克斯分支呢?也不合适,因为我们针对一个项目通常只有一个测试环境,也说这个测试环境不止服务于你这一个费克斯分支,可能还有其他的费克斯分支,比如这样 cx, abd 我们只上这一个分支的代码,那其他的分支没法测试了,所以呢,这时候就需要有一个 测试分支,假如我们从这创建出一个测试分支叫太子的,那么通常情况下,太子的分支只是用于接收代码合并的, 通常来说不会在太子的分支上直接来改代码。有了太子的分支之后呢,我们就可以直接把代码合并到太子的上面, 那这时候呢,我们就可以把这个 past 分支的最新代码来闭眼影上到测试环境了,测试环境通过没问题之后,我们再来把 fax 分支合并到 mast, 记住千万不要把 past 直接合并到 mast, 因为 past 里面还有其他的代码,比如说这还有一个 abd 也合并到了这个 fast 分支上面。如果我们把 pass 的分值直接合并到 mate 的话,会导致有一些不能上线的没有通过测试的代码 也被伤到了生产环境,所以一定要把具体的某一个 fax 或者某一个飞车分支来合并到骂死他。那么飞车凹的这个分支呢,也是一样的,等他开发完以后呢,他先合并到 past, 太子的测试没问题之后,我们再把这个非常有点和平到阿斯的住分值。好,那今天就到这里,谢谢大家,再见。

相信很多人在写代码时有过这样的经历,在完成了程序的一个功能后,会把原代码打包为一个压缩文件, 在文件名中加个时间和备注,这样在后续的代码写的一团糟时,可以把代码直接删掉,用压缩文件回退到以前的样子。如果你这样操作过,那么恭喜你已经具有了最原始的版本管理经验。这种管理方式操作简单, 但在多人加异地合作时很不方便,而且容易出错,于是我们需要专业的软件来帮我们管理原代码。这类软件称为版本控制系统,其中有个软件很受开源社区的欢迎,这就是 get。 简单讲下下载和安装,来到官网 点这里下载 windows 版本,选择六十四位,这年头应该没人用三十二位的 windows 系统了吧。下载完成后,那这就是 安装文件,双击安装,不停的点下一步即可。在二十年前那个安装文件还很纯洁的时代,我们称之为一路回车法。 安装完之后,在桌面点右键会发现菜单里多了两个菜单项,选第二个,从而打开 get 控制台。目前呢,字太小又不好看,没关系,可以改单击程序图标选项, text select, 选择喜欢的字体和大小就行了。 有个事现在必须做一下,那就是配置用户名和邮箱,使用 gate 空格 config 空格两个短杠,然后是 blow 空格, user 点 name 空格,加一个迷糊。配置用户名,使用 user 点 email 空格迷糊 at 一二三点 com 配置邮箱。注意,这个电子邮箱并不需要真实的存在,尤其是在非正式用途下,可以随便写,比如特朗普艾特不靠谱点 com 也是可以的。配置完毕,下面我给大家简单演示一下用 get 实现代码管理的过程。根据实际需要有两种初始化的方式, 如果你是从 github 上下载原码,可以用 get clone 命令。比如你想把项目放在桌面,就可以在桌面右键选择 bash, 输入命令。 get 空格, clone 空格,再加上某个项目的 get 链接,通常呢,在这里获取 粘贴。回车可以看到桌面上出现了项目的文件夹,打开里面有个点 get 文件夹,这里包含了和版本管理有关的各种文件,其中绝大部分文件开发者不需要去操作,也 最好别去操作,项目的原代码都在这里,到此为止就已经把别人的项目白嫖过来了。如果是自己新建的项目,可以先新建一个文件夹,随便起个名字用来做项目的总文件夹。接下来要告诉 gate 帮我们管理这个文件夹下的代码。 打开这个文件夹,在空白处右键打开 get 控制台,然后输入 get 空格。 in it init 呢,就是初始化的意思。这样 get 就立刻创建了一个名为点 get 的隐藏文件夹,用来管理即将新建的原代码。现在开始写代码,代码所在的这个目录叫做工作区,在工作区新建一个原代码文件, 然后假装花了一天的时间完成了一个小功能。一,这个时候需要把这些代码复制到 git 仓库进行备份,术语叫做提交 commit。 那么仓库在哪呢?就在刚才这个点 get 文件夹里,不过正如刚才所说的,不要直接操作这个文件夹。提交操作是通过两条命令实现的,首先输入 get 空格,爱的空格点, 这个点呢是当前文件夹的意思,这句命令的作用是让 get 把当前文件夹内的所有文件和飞空文件夹设置为准备提交的状态。有点子弹上膛准备发射的意思, 子弹不上膛能发射吗?显然不能,所以这一步啊不能审。然后再用 get 空格 commit 空格,杠 m 后面跟了一串字符串进行提交。 引号里的部分是对这次提交进行备注,比如功能一已完成。注意这个备注一定要写,因为软件开发过程中会有很多次的提交, 不写备注的话以后就分不清楚他们的区别了。回车提交成功后, get 会把原代码以数据库的形式保存在仓库中,可以用 get log 来查看提交的历史记录,包括作者时间备注。那么这么一大坨是干什么用的呢?如果把每次提交看做一个学生的话, 他就相当于学号或者身份证号,用来唯一标示每一个提交。备份完今天的成果,我就满意的睡大觉去了。这时一个瘦小的黑影悄悄的打开了电脑。第二天我打开文件一看,卧槽,小猪佩奇,我的代码呢 啊!想了想,可能是被淘气的小屁娃给修改了,不要慌,问题不大,我们可以用 check aunt 命令进行恢复,它的语法是 get 空格, check aunt 空格,大写的 head 空格。然后我们要恢复的文件是 men 点 p y, 它的作用是从最后一次的提交里把 men 点 p y 复制到工作区回撤。再次打开原代码, 发现昨天的内容他回来了。实际使用中,如果不幸把代码改的乱七八糟跑不起来,也可以用这个命令恢复到以前能正常工作的状态。这后悔药,就问你香不香? 今天继续录代码,又完成了功能二,按说这时该提交一下,但是我正在信头上写的正嗨,接着就新建了文件三点 py, 把功能三实现了一半。 现在有个问题,如果按上次的方式,会把文件夹下的所有文件都提交,这样并不好,因为按照惯例,每次提交的代码应该是清晰的,我如果在提交备注里这样写完成功能二功, 功能三做了一半。这藕断丝连的别扭。这个时候我们只需要稍微的变动一下,把这个代表当前目录的点改为要提交的文件慢点 py 即可,这样慢点 py 就进入了准备提交的状态,而三点 py 并没有。 于是在接着用 getcomet 命令提交时,只有慢点 py 被提交到仓库备注就可以写成功能二完成。等到以后功能三也完成的时候,再用爱的命令把三点 py 进入准备提交的状态,然后提交备注,写功能三已完成。 这样每次提交的结果看起来就清晰多了。在上面的视频中,我们三次提交,每次都涉及到了将文件设为准备提交的状态这种操作。在 get 里有个专门的术语叫做把文件加入暂存区。 暂存区呢,它的英文有两种表达方式都可以,一个叫 index, 一个叫 stage。 暂存区的设计是 get 的一个特色,为原码的管理带来了更多的灵活性。通过刚才的例子可以看到,使用暂存区可以在不耽误你写新代码的前提下,让每次的提交在逻辑上非常清晰。 值得一提的是,暂存区在版本控制软件中并不是必须的,有些版本控制软件,比如 svn 就没有暂存区,可以把元代码文件直接从工作区提交到仓库,非常的容易理解和使用。但 get 由于使用暂存区在工作区和仓库间横插了一杠子,理解起来就没那么直观明了了。 不过呢,既然是设计方案,肯定是有利有弊的,赞存器的作用还远不止这些,相信大家在实际使用中会有更深的体会。

如何解决代码冲突?面向 git 精神查看 git 状态,可以看到使用 boss 取消代码,合并使用奥特曼修改后的代码添加到缓冲区。根据编辑器提示,你可以使用当前版本和远程版本的代码。 如果使用当前版本就点 except current change, 如果使用远程版本,就点 except incoming change 修改完成,输入 gettad, 把代码提交到缓冲区。 gets status 查看状态 discommit 继续完成合并代码,按 usc 键,按住 shift 不放加分号键,输入 dark 回车完成解决冲突。

大家好,我是何方?欢迎大家来到给特进阶教程的第五节的第四章,电机 在 get 中想要整合来自不同分支的修改,主要有两种方法,一种是我们之前讲过的合并墨迹,还有一种就是本次视频要讲的变机。 在本节中我们将学习什么是变机,怎样使用变机,以及哪些场景不能使用变机,哪些场景可以使用变机等等。 在之前的视频中我们讲过整合分支最容易的方法就是墨迹冰凌,他会把两个分支的最新快照以及二者最近的祖先进行三方合并,合并的结果会生成一 一个新的快照并提交。其实还有一种方法可以把分之 b 的所有更改,在分之 a 的基础上应用一次,然后把应用后的结果再放到 b 里面。 这种方法叫做变机,你可以使用瑞贝斯命令,把某一分支上的所有修改都复制到另一分支上,就好像是重新播放一样,在目标分支上面重新应用一遍。通俗来讲,变机就是改变一个分支所基于的分, 点击使用瑞贝斯命令,用法和默契一样, get 瑞贝斯后面跟新的鲫鱼的分值名或者是提交 id 都可以。 我们现在来看一下 我们之前的视力仓库有过多的 记录,如果使用那个仓库作为演示的话,可能会让大家更难理解变级的效果。所以本次教程我在本地重新促使画了一个新的仓库,并且有了一些提交。 我们本次使用这个新促使画的仓库来作为演示,能让大家更加直观的看到电机的效果。我们现在看一下这个新仓库的贴胶图, 可以看到现在这个新的仓库有两个分支,一个是分支 a, 一个是分支 mast。 分支 a 是从 c 三开始的, c 三是从 c 二创建出去的, c 五也是从 c 二走出去的,所以 c 五和 c 三 c 四他们是两条平行线。我们先把现在的提交图给保留一下,然后 我们执行变机操作,把分之 a 的基础从 c 二变成现在马斯特最新的铁脚 c 五,我们来试一下。首先我们要先剪出 a 分之, 然后现在执行 gtry boss maxty, 意思就是把当前的分支 a 变击到 mast 上,我们来回收试一下其实我们成功的变机,并且更新了分支 a, 我们现在再来看一下整体的提交图, 可以看到 c 三 c 四和 c 五并不在一条平行线上了,而是 c 三 c 四跑到了 c 五的后面。我们对比一下原来的那张图,大家可以看到前两个还是 c 一 c 二, 从 c 三开始,因为变机前 c 三是属于 a 分值的, c 五是属于马斯特的。 将 a 分值编辑的马斯特以后,就会把 a 分之的提交放到马斯特最新的提交后面, 然后把整体的结果再重新放回 a 分之里面。所以现在 a 分之就相当于是基于 c 五这个题叫创建的分支,所以现在 c 五提交所对应的内容也会出现在 a 分之里面。我们看一下 c 五提交都提交了哪些内容。 可以看到 c 五提交是创建了一个新文件 m 三,我们现在看一下 a 分值里面有没有 m 三 是有爱 直接使用 艾特瑞贝斯新机会把当前分支进行变机,这就要求你必须先切换到要变机的分支才能进行操作。其实不需要切换也可以,只需要在新机后面再跟一个目标分支的分支名,他就会自动变机并切换过去。我们来看一下, 先看一下现在的提交图, 可以看到和刚才的图一样,有 a 分值、马斯特分值,不同的是还多了一个 b 分值,当前就属于 b 分值。 我们现在和刚才一样,把 a 分之编辑到马斯头上, 现在再看一下贴胶图, 结果是和刚才一样的,变成了一条线,谁一谁二谁五,谁三谁四。 而且大家可以看到,现在当前的分支是 a, 也就是我们变机的目标分支。使用 get 瑞贝斯后面跟两个分支名这种形式操作以后,他会自动切换到目标分。 现在有这样一个场景, 有一个需求 a, 你已经在分支 a 中做了,而且已经产生了一些提交。 但这个时候项目经理发现另一个需求 b 和需求 a 有相似的地方,于是要求把需求 b 和 a 放到一起做, 于是你又寄于分支 a 创建了一个新分支 b。 过了一段时间,羡慕老大问你需求 a 和 b 做完了吗? 你说 b 做完了, a 还没有。羡慕老大说,先上 b, a, 不管了,这个时候你怎么办?直接把分支 b 提测吗?这样肯定是不行的, 因为分之 b 是基于分之 a 创建的,而在创建分之 b 的时候,分之 a 里面已经提交了一些关于需求 a 的内容,如果直接把分之 b 给题册的话,题册内容里面会包含需求 a 的内容,所以这样是不行的, 还是新建一个粉丝,把需求币里面的代码给复制过去,当然别人有可能会这样做,我相信学过我 get 间接教 成的你是肯定不能这样做的。使用我们刚才所讲的把分之 b 变击到 a 创建时的提交是可以的,但是如果分之 a 和 b 你都有了非常多的提交呢? 这个时候要去找他的源头也是很麻烦的。当然已经说到这了,是肯定有办法非常简单的就解决这个问题的,其实只需要一行命令而已,现在我们来试一下。 先看一下当前仓库的提交图, 可以看到和我们刚才场景是一致的,有 a 分值和 b 分值,对应需求 a 和需求 b, 而需求 b 分值是基于需求 a 分值 值得。而在创建分支币的时候,分支 a 里面已经有了 c 三和 c 四两个提交了,这个时候要怎么做呢?我们来看一下。 当然为了防止万恶的项目老大又再次变卦,我们最好还是把奔驰币给备份一下 guccicliglgrak, 这样我们就把分支 b, 这样我们就把分支 b 当前的状态给备份到了 b 杠 bug 里面。 备份完毕以后,我们现在来看一下各个分支对应的内容都是哪些,方便待会执行完操作以后查看效果。 你看到马斯头分支 里面有 m 一到 m 四四个文件,再看一下分支币 有 a 一, a 二, b 一、 m 一、 m 二,再看一下分支 a 分支 a 里面有 a 一, a 二, a 三、 m 一 m 二这几个文件。现在我们需要的效果是要保留马斯特分支里面的 m 一到 m 四这四个文件,以及 b 里面有但 a 里面没有的文件也就是 b 一,我们来执行一下操作, kitty face、 杠杠呕吐 most。 我们不需要 a 里面的内容,我们所要辨析的目标分支是 b 回车 成功的电机,并且更新了分支币,而且它自动的切换到了币分值里面。现在我们看币分值里面的内容 有 b 一, m 一到 m 四,可以看到 a 分支里面内容是没有的,这样就达到了我们变击到互对线的互对。 当然电机虽好,我们也不能滥用,使用的时候一定要谨慎,为什么呢?因为电机会让团队协作代码变得混乱。 我之所以把墨迹放到基础里面讲,而把瑞贝斯放到进阶里面,就是因为瑞贝斯虽然执行起来和墨迹一样简单,但是瑞贝斯并不适用于所有场景。比如 如果你要编辑的目标分支,你团队中其他人也在用,也在上面提交代码,这个时候你就不能把这个分支给编辑到其他地方, 因为这样一旦你推送以后,其他人再拉取代码会出现问题,会造成你同事的代码混乱。 还有一种情况就是如果你们团队的提交模式是不是直接提交,就不是像我们之前讲的那样直接给他铺死,而是统一提交的欧瑞快斯特里面,这样也是不行的, 因为在合并的时候也会出现代码混乱的问题,还有就是他会破坏分之间的关系,在使用墨迹整合代码以后,查看提交图,可以看到分之间的 关系,各个分支是不同的线,可以看到分支创建的时机,以及每个提交对应的时机和关系,但是经过变机以后,提交图会变成一条线,就无法清楚的展示出各个分支线的关系。 还有点就是使用不当会毁掉整个目标分支的内容。比如我们刚才的场景, 如果你把 most a 和 b 的顺序给写错了,那么你的写错的命令里面的目标分支的内容会被破坏掉, 而这个时候你就算使用于赛特也没有办法还原到变机之前的状态了。 所以使用电机命令的时候一定要伸直右伸。既然使用电机有这些不好的地方, 如果我们真的有场景,需要把一个分支的提交再次提交到另一个分支中, 有没有什么更加安全的方案呢?当然是有的,那是另一个面料了。我们下节讲,本节内容就先到这里, 如果大家对于变机或者 get 其他方面的操作有疑问或者不明白的地方,可以在评论区留言交流,如果我的视频对你有帮助的话,还请给我点一个大大的赞,这对我非常重要。 关注、评论,转发,更多优质内容等着你哦!

哈喽,大家好,我是随风,欢迎大家上个美颜视频啊,那么今天这个视频呢,我们将一起来介绍一下如何在 ida 当中进行 get 代码的一个合并啊,以及碰到冲突的时候,我们怎么样去解决啊?怎么样去合并代码,对吧?那么这个呢,也是我之前的 ida 视频当中问的最多,或者说私信问的最多的这样的一个问题,对吧?今天就一起来给大家解答演示一下。 首先我们这个地方有一个非常简单的加法项目啊,然后接下来呢,我们来到 kte, 也就是远程仓库,在这里呢,我们就是想模仿一下,就是别人提交了代码,然后我们有冲突,怎么样去解决啊?我们点一下这个编辑, ok, 然后打开可能有点慢啊,然后我们就非常简单吧,就比如说在这个地方,我给他多来几行代码,把这个空行给他去掉,代码搞整齐一点,对吧?然后接下来呢,我们就写一下,比如说 fix 啊, at some line, 然后点击一个提交,提交完毕了以后呢,我们这个地方代码就产生了改变,然后接下来呢,我们再在本地啊,也对这个相同的区域啊代码搞一些提交, ok, 然后我们在这个的后面加上一个 logo, ok, 那么接下来呢,我们相当于本地开发完了代码,对吧?然后我们来做一个提交,首先我点击这个 commit, 然后选择我要提交的一个文件,然后写好注释,点击这个 commit and push 啊,它是一个快捷操作,就是你的 commit 和 push 可以一次搞定,对吧?然后我们点击这个 push, 那当我们去提交代码的时候呢, ida 给了我们这样的一个提示啊,就是你的 push rejected, 你的提交倍 拒绝了,什么意思呢?就是我们现在本地的一个代码和远端的一个代码可能产生冲突了,别人改了,你也改了,然后有一些内容是重合的,那么这个时候呢,你就需要去选择怎么样来处理这样一部分重叠的代码,对吧?你可以选择 cancel 啊,比如说你回到本地,你看一下你的哪些部分和别人是有冲突的,你看了一下线上的这个 代码,然后你本地做完修改再提交,这个是可以的。另外一种方式呢,就是比较快捷,就是 merge 和这个 rebase。 其实 merge 和 rebase 呢,都是去合并代码的一个操作啊,但是他们两个基于这个代码分支上面的一个操作呢,是有一点不一样的啊, rebase 可以理解成是叫变机啊。 如果说大家想更清楚的了解 merge 和 rebice 的一个区别的话呢,可以去看我之前的一个视频,讲的非常的清楚, ok, 那么这个时候呢,我们就选择 merge 啊,中间的这个也就是 idea 默认选中的这个,对吧?我们点击这个 merge, 点击完了 merge 以后呢,它 这个地方还是会有一个快捷的操作啊,就是 accept yours 还是 accept theirs 啊?就是我不用去看具体的内容了,如果说我这一部分代码就是扣 refill 的时候已经通过了啊,我就想用我的代码去覆盖远程的一个提交,我就 accept yours 啊, yours 就是你的嘛,啊,就是我自己的嘛,然后 accept theirs, 就是远端的那个人写的代码比我好,或者说大家公认的就要这么去写,那我就 accept theirs, 我就不需要看了,我直接用他的代码就可以了,对不对?如果说你们两个 啊,一个人改的是 a 方法,另外一个人改的是 b 方法,但是代码写着写着写着他的这个行数会串号,所以说这样也会产生一些代码的冲突的情况,对不对?所以说这个时候呢,我们就要去选择这个 merge, 通常我们还是选择 merge 啊,因为 merge 点开了以后呢,他会有这样的一个操作和确认的面板,给我们做第二次的一个确认。首先对于这个操作面板呢,我想讲一个非常 常有用的设置啊,就是这个地方啊,你可以看到,当我取消了以后呢,他这个地方展现的是所有的这个代码的内容,当你点选了他以后呢,他会只显示啊,你们两个冲突的那个部分的内容,对吧?就是他会把一些无关紧要的给你折叠起来, 然后左边的话呢,左边这个窗口是 your version, 就是你当前本地的一个提交,然后右边这个区域呢是 change from server, 就是远端的那个内容大概长什么样子? 中间的这个很好理解,就是左右两边左右互搏了以后啊,最终形成的一个结果就展示在中间,然后左边和右边呢,都会有这样的两个快捷操作,一个是叉叉,一个是 双箭头,对吧?叉叉的意思就是我不需要你这样的一个提交,我不需要你这样的一个内容啊,然后箭头的话呢,就是把你的这部分内容挪过来,哎,我们发现当我们把左边这个箭头点完了以后呢,左边就没有任 的这个快捷操作了,对不对?然后右边呢?还是剩下这两个快捷操作?如果说我们既想保留左边,又想保留右边,那么继续点这个叉叉,哎,右边的这个操作也会过来,对不对? 然后左右两边的这个操作都过来了以后呢啊,我们这个地方就可以点击这个 apply 了,对吧?然后大家会发现在左侧的这个底部啊,还是会有这个 accept left, 还有这个 accept right 这样的一个快捷操作啊,什么意思呢?就是当你发现很多的这个代码都会有那种变动,然后都是一些啊,完全可以接受的,或者说就想用某一个 这个版本的啊,比如说我就想用左边,那么你就可以看快捷的点这个 set left 啊,就可以了,对吧?然后呢,在你合并完了代码以后,如果说你对某一个部分有任何的一个想法啊,你都可以在这个地方去给他做修改这个 result, 这个地方他是可以去修改的啊,然后这些地方是改不了的啊,就是比如说你在左边, 在右边,他都是无法进行修改的,他们是一个指读的状态,但是在中间你是可以去修改的,对吧?然后任何时候,如果说你想要去进行撤销啊, ctrl z 都是可以用的, ok, ctrl z 都是可以用的,对不对?然后最后我们选择合并左边的一个代码, 右边我们就不需要了。点完这个叉叉,然后呢,我们点击一下这个 apply, 哎,你会发现当前我们就已经合并完毕了,对吧?然后我们再点击一下这个 push, 哎,他这个地方就会来一个 merge 啊, remote tracking branch 什么什么什么之类的,然后把我们本地的一个提交也放上去了,然后我们就点击一个 push, 哎, pose 完毕了以后呢,我们再来到这个 gate e, 然后刷新一下这个代码,我们会发现刚才我们本地的一些提交和变化都已经同步到了远端。 ok, 那么这个呢,就是一个非常简单的 idea 当中 gate 呃,产生 冲突,然后怎么样去和平代码的一个快捷操作了,对吧?好的,那么以上呢,就是本期视频的一个全部内容,如果大家觉得这个视频还不错的话呢,请帮忙点赞,投币分享,一键三连,支持我一下,如果你还没有关注我的这个频道,也请你点下关注啊,我这个频道是专注于程序员干货,视频教程分享,关于程序员身心健康的这样一个频道。 ok, 我们下个视频再见吧! peace。

给大家演示一下,使用 get 命令啊,从这个代码编写到最终代码提交的本地仓库是一个怎样的过程?首先第一步,先初始化本地仓库 get, 然后呢是引力 初始化本地仓库初始化完成之后呢,看一看我们是否啊有我们的一个点 get 这样的一个目录, 有这个目录就表示我们的本地仓库已经出示化完毕。接下来呢,我们可以去工作区啊,也就是我们的 wox 被子去写我们的代码,比如说我们使用 v i 编辑器啊,然后呢去编辑一个文件啊,这个文件内容你就随便写了。 好,写完之后呢, esc 冒号 wc 保存并退出。那么这个时候呢,我们这个文件在工作区啊,先把它放到 get 的暂存区当中,怎么放上去? get, 有个命令叫艾的,然后 哈喽点加法写上,那么这个时候就放到暂存区,但是这个文件呢,他还没有放到本金库当中,怎么放到本金库 getmex 啊?然后哈喽点加法,那每次提交的时候建议加上注释,怎么加注释?杠 m 参数后面加上一个注释啊,比如叫 max, 然后妞饭,哈喽点知道吧?那么这个相当于是一个诸事啊,走一个,那么到此为止,哎,我们哎就表示把这个文件已经放到了我们本地仓库当中。

什么 get 命令行?学不会用小乌龟啊?来,我教你!小乌龟是一款可以在文件文件夹上下文菜单中直接管理代码的图形化界面工具。 有了它,妈妈再也不给你背单词啦!第一步,下载并安装盖世神规第二步,初始化配置,我们需要告诉他 get 的路径以及我是谁。 第三步,各农同事写的乐色你才乐色你乐色你色你色色色第四步,修改 bug 第五步,在文件夹上单击右键,点击 get commit, 确认代码没问题后输入注视,点击 commit and push, 将代码提交到远程仓库。哦对了,说了半天还忘了告诉大家你的名字, 请随我 totus git totus git 你学会了吗?
