idea合并分支有两种方式:一个是merge,另一个是rebase

一.merge(合并)

现在我们有一个master分支和一个C分支,我们想把C分支合并到master上

第一步:分别update和push两个分支,保证两个分支的代码都是最新的

(为什么要push呢,只commit不push不行吗,  这个我也不清楚,还没研究到这,目前反正只要合并我都push到远程仓库)

第二步:切换到master分支

注意切换分支前一定要把C分支的改动先commit或者直接push到远程仓库,要不然你会发现切换到master分支会直接看到C分支的改动,很烦,切记这个大坑!

第三步:右键--Git--merge

第四步:选择你要合并的origin/C分支

origin 是 Git 克隆的仓库服务器的默认名字。

(为什么不选C呢,我也不知道,可能他俩本身就是一个,反正准确点就选这个origin/C分支)

第五步:有冲突解决冲突再合并,没冲突就直接合并了.

注意,将c分支合并到master分支, 不管怎么解决冲突,c分支的内容是不受影响的,改变的都是master的内容.

到此结束

下面是我的实验

C分支一但合并到master,下次合并就失效了?并不是这样的,其实你想看的那个三个页面的冲突是有条件, 必须是master分支和C分支都修改了同一行代码,这个时候,就会弹出来3个页面,让你选择.

也就是说,一行代码,在master和C合并前,merge和C都对这行代码做了改动,这个时候才会显示冲突,让你手动选择.

案例一:

C是从master分出来的,分的那一刻,他俩的初始状态是相同的,那行代码都是sout(7777),

这时master把那行代码改为了'sout(1111)',      C把那行代码改为了'sout(2222)',

这个时候你把C合并到master的时候就会报冲突.  如下图:

你可以选择左边的'sout(1111)',最后点Accept Left;

也可以选右边的'sout(2222)',最后点Accept Right;

也可以选中间的sout(7777),你也可以自己去中间的代码修改成你想要的结果.最后都是点apply

案例二:

跟着案例一,就是C合并到master后,现在master是sout(7777),C是sout(2222),两个的这行代码不一样,现在我第二次把C合并到master,会发生什么情况,

注意,C第一次合并到master后,他俩的代码相较于第一次合并那刻后,都没有改动过,

你猜下,第二次C合并到master后,是否会显示冲突界面,   如果不显示冲突界面,那么这个合并的最后结果是C的sout(2222),还是master的sout(7777)呢?

结果如下::::::结果就是合并的时候C分支这个选项就直接没有了!!!!

那现在我来改动一下C分支,把sout(2222)改为sout(3333),再合并,会发生什么样子

冲突界面再次发生!!这次我选择中间的sout(2222),,结果就是第二次合并后master由sout(7777)变成了sout(2222),,,然后C分支不受影响还是sout(3333)!

然后我把C分支的sout(3333)改为和master相同的数据sout(2222)呢,    结果会是什么呢?

结果::::::结果就是直接它自己就合并了!什么冲突都没有,   也是,都是相同的代码,哪来的冲突呢.

总结:以把C合并到master后为基准,master为111,C为222

1,master分支和C分支合并后,master做修改,但是只要是C没有修改,那么C就不能合并到master分支.

2,master分支和C分支合并后,master做修改,C分支也修改,这时合并,冲突出现,

如:master由111改为555,把C由222改为333,这时合并冲突显示为555,222,333.

3,master分支和C分支合并后,master不做修改,并,只有C分支做修改,这时合并,冲突出现,

如:master为111,把C由222改为333,这时合并冲突显示为111,222,333.

4,可以看到C合并到master,那么master这一方自己想怎么改就怎么改,但是只要C分支修改了,那么就有冲突了.

5,冲突的左边永远为master现在的版本的内容,冲突的中间永远为C合并到mater后的初始未改动版本,  冲突的右边永远为C改动后的现在的版本.

7.注意,冲突 仅限于同一行的代码,而且必须满足 冲突的三个页面的数据都不同.

二.rebase(衍合)

等明天再研究,我这学习进度太慢了,妈的,因为我TM加班到8点多,到10点还要忙自己的事情,操了!!

Git 04 ---用Idea合并git分支相关推荐

  1. git提交代码,合并同步分支

    使用git开发往往会有很多分支,比如自己在分支A上面开发,别人在分支B上面开发,当自己需要提交代码时,需这样操作: 前提是在自己的分支上操作下面指令. 第一步: git add . //作用就是将修改 ...

  2. 通过idea的Git使主干项目合并到分支中(主干同步到分支)

    正常来说,而且现在网上的教程都在说,分支同步到主干的办法,今天因为项目需求,需要将主干的项目全部合并到分支上,正常的都会,反过来就不会了,这个问题,我也是找了很久才知道解决办法,当然如果有人能知道其他 ...

  3. git——学习笔记(三)分支管理

    一.创建.合并分支 每次提交,git都往后走一格,串成一跳时间线,head指向的是分支,分支指向提交.master是主分支,dev是另一条分支,分支就像指针一样,合并.删除分支时,修改的都是指针,工作 ...

  4. [转]git图解(3):分支操作

    本文转自:https://www.jianshu.com/p/342a9f8db004 title_img.png git 的分支是它最明显的特性, 大部分人听别人推荐使用git都会听到"g ...

  5. 廖雪峰Git教程笔记与总结 -- Git简介、常用命令、分支管理

    本文主要用于记录阅读Git教程 - 廖雪峰的官方网站后的一些心得笔记,并且对git一些常用命令做一个整理总结. 本文要点分为:1.Git简介:2.Git常用命令:3.Git分支管理. 一.Git简介 ...

  6. Git的具体使用,包括安装Git工具,把Git和IDEA结合,使用分支

    文章目录 Git的具体使用,包括安装Git工具,把Git和IDEA结合,使用分支 git安装及环境配置 git的必要配置 git config -l git config --system --lis ...

  7. git add remote_收藏向 | Git命令与原理速查手册

    Git简单介绍 Git是一个分布式版本控制软件,最初由Linus Torvalds创作,于2005年以GPL发布.最初目的是为更好地管理Linux内核开发而设计. Git工作流程以及各个区域 Work ...

  8. 已经无法合并还报请合并git_GIT 分支管理:创建与合并分支、解决合并冲突

    分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平行宇宙合并 ...

  9. git rm -r --cached_【Git】工作中99%能用到的git命令

    分支操作 git branch 创建分支 git checkout -b 创建并切换到新建的分支上 git checkout 切换分支 git branch 查看分支列表 git branch -v ...

最新文章

  1. 发布Wear OS by Google开发者预览版
  2. Drools可执行模型还活着
  3. MATLAB的PLOT函数线型设置及横坐标为字符串的代码实例
  4. 在eclipse中运行正常的java项目放到tomcat中报错的解决办法
  5. mysql to_minute_mysql的时间转化
  6. $Django redis内存数据库 (知识回顾cmd切换目录)
  7. 中国内置扬声器市场趋势报告、技术动态创新及市场预测
  8. 空间说说秒赞java_人生靠反省,Java靠泛型
  9. 【C++标准库】字符串
  10. Vue项目中安装axios
  11. Dynamics CRM 365 - 零基础入门学习后端插件的调试方法
  12. scala异常处理、提取器(Extractor)、文件IO
  13. 转:爬虫入门 手写一个Java爬虫
  14. 统信UOS系统连接Windows系统共享的打印机
  15. 如何用excel搭建数据模型,销售数据管理软件
  16. java 最短遍历路径_凯文培根游戏的最短路径图遍历
  17. Spring Cloud Hoxton 版本微服务项目搭建 admin 监控客户端
  18. Web开发基础_Servlet学习_0011_Servlet中的多线程安全问题与Servlet运行原理
  19. 月入2千到5万,是skycc营销软件在帮忙
  20. 数据归一化和代码实现

热门文章

  1. 殷墟申请世界文化遗产成功
  2. vue 打造携程网平台界面实战
  3. 塞雷三分钟漫画中国史4
  4. IPv6下的DAD检测
  5. Android Handle用法
  6. FileReader 文件操作
  7. SQL 添加、删除、更改字段(属性)
  8. IEEE754标准表示浮点数(详解)
  9. Vue实现简单列表无限循环滚动(鼠标悬停)
  10. java :工资计算