idea git 中的rebase 和merge

以前一直有一个疑惑,rebase和merge都是合并分支,但是这两个的指令区别到底在什么地方,以及idea中每次为什么合并分支的时候,会出现这种显示

刚开始工作的时候的我:“为什么啊,跟师傅说的不一样啊?不应该是直接commit吗?为什么还会出现这种accept yours? 为什么会出现accept theirs??”

其实并不奇怪,出现这个问题是由于代码冲突引起的,

说到冲突,我个人理解为 同一个团队在运用同一个分支的时候,这里分为A和B,A在提交代码的时候恰巧B 也修改了这段代码,所以在两者互相提交的时候,必然会引起冲突,所以这里的冲突就出现了,那么idea在这个时候会出现如上所述的图片,图片会清楚的告诉你,是以什么为标准来提交对应这里的===> accept yours 代表以你的提交方式为标准,把B 写的代码全部不要.

而accept theirs 则是 以别人的提交为标准,那么你自己写的代码就相当于白写了做无用功,然而智慧的idea 相处来什么,即   这两个图片 中的 < 号 来让你自己选择需要哪个代码,来进行分支合并,然后在你进行完操作之后,你就可以合并了.

话题多少有点跑偏,那么来研究下merge 和rebase这两个关键字---->全是合并代码那么必然会有前后分别,现在举例子说明 .

首先源代码提交顺序是1----2----3  . A 首先从3开始编写master代码,写了 4,5commit.紧接着B 从主节点checkout出一个新的分支QQ ,此时的QQ是1---2---3分支,且B也写了6,7分支来commit,如果这个时候B选择rebase 合并分支,此时的代码顺序是  1--2--3--4--5--6---7 即rebase以master为基础commit提交代码,而如果这个时候B选择了merge 合并代码,那么则是以 QQ分支的代码顺序合并,代码顺序为 1--2---3--6---7---8 (4+5)他是采用的把4 和5进行一个合并加在已经写好的QQ分支得代码的位置进行一个提交.

使用rebase场景----> 当你在自己的分支填写代码的时候,你需要把主线的修改的代码合并过来,那么可以直接使用rebase 来合并代码,!!!建议不要在rmaster上rebase你自己的代码,这样别人在拉去master代码的时候会把你的代码也拉过去.

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值