Git 04 ---用Idea合并git分支

这篇具有很好参考价值的文章主要介绍了Git 04 ---用Idea合并git分支。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

idea合并分支有两种方式:一个是merge,另一个是rebase(不要碰)

idea进行git操作千万不要碰两个按钮,一个是rebase(变基),一个是VCS,这俩千万不要碰,一碰就死,要问为什么,因为我不会☺☺☺

一.merge(合并)

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

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

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

第二步:切换到master分支

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

Git 04 ---用Idea合并git分支

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

Git 04 ---用Idea合并git分支

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

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

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

Git 04 ---用Idea合并git分支

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

注意:

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

2.将c分支合并到master分支,c分支并没有被删除,也没有自动消失,c分支好好的,c分支什么都没有改变.

到此结束

下面是我的实验

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

Git 04 ---用Idea合并git分支

 案例二:

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

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

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

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

Git 04 ---用Idea合并git分支

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

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

 Git 04 ---用Idea合并git分支

 然后我把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(衍合)

不会,不想学,摆烂文章来源地址https://www.toymoban.com/news/detail-423459.html

到了这里,关于Git 04 ---用Idea合并git分支的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【随笔】Git 基础篇 -- 分支与合并 git merge(九)

    💌 所属专栏:【Git】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘   大家好,又见面了,我是夜阑的狗🐶,

    2024年04月11日
    浏览(91)
  • git使用教程7-pycharm 使用 git merge 合并分支

    前面一篇已经用 pycharm 创建了分支,当我们在某个分支上代码开发完成,代码测试没问题后需要把分支上的代码合并到 master 分支上。 这样保证 master 分支的代码永远都是最新的,也是最干净的,这样才可以持续的开发自己的项目。本篇讲解如何使用 pycharm 合并自己的分支。

    2024年02月12日
    浏览(48)
  • git merge合并分支代码后如何回退合并操作

    这次问题产生的原因还是自己操作过于急躁了,新功能开发完成之后没有实时的与经理沟通就进行了新功能分支合并的操作,导致当前版本部分功能由于没有同步产生了一些问题,因此需要把代码进行回退操作; 但是分支代码修改了许多文件,并且已经推送到了远程仓库,手

    2024年02月08日
    浏览(69)
  • git从其他分支merge个别文件,部分合并文件

    简介 git 使用的过程中,有时候我们可能会有这样的需求, 别的分支上有部分文件是我们当前分支需要的,但是如果使用常规的merge,就会将别的分支的内容全部合并过来,这不是我们想要的,下面简单介绍一个小技巧可以实现只合并指定的文件。 场景一 目前有master 和 dev

    2024年02月07日
    浏览(57)
  • git diff两个分支有差异git merge却显示没有可以合并的内容

    problem: 用git diff可以发现两个分支还是有很多不一样的地方,可用git merge显示not something we can merge 输入gitk查看,发现preview已经在这个分支前面了。。。虽然不太懂,但这样是没办法将preview合并当前分支的,只能这个分支合并preview。。。 解决:因为也不会别的解决方法,因

    2024年02月12日
    浏览(51)
  • 记录一个IDEA中使用GIT的严重BUG,导致测试分支合并到主分支,以及代码恢复解决方案

    在做项目时遇到了一个问题,就是不知道什么操作,无缘无故把test分支代码合并到了master,导致花了好长时间去恢复master分支的代码,所以研究了一下,到底是什么原因导致的这个问题 PS: 后来分析出来根本原因,确定这确实是IDEA的一个BUG,在下面会有详细描述 当我们在test分支时,

    2023年04月14日
    浏览(74)
  • git合并代码命令 分支合并代码 cherry-pick merge rebase区别

    1.cherry-pick 需要注意 暂存未提交的更改 暂存更改: 使用git stash或git stash push命令暂存当前工作目录和暂存区的更改。你可以提供一个消息作为参数,以便更容易地识别stash项: 执行cherry-pick: 现在,你的工作目录是干净的,可以安全地执行cherry-pick操作了。找到你想要cherry

    2024年04月12日
    浏览(49)
  • gitlab 合并代码分支 Merge 按钮灰掉了,无法合并代码, git merge --no-ff 的作用

    提交的分支无法合并,用 git merge --no-ff 合并。 在 gitlab 上合并分支代码的时候,因为自己就是管理员,有时候提交代码,准备合并的时候会发现无法合并成功。网页上 Merge 按钮灰掉了,出现提示 : 点击 “Resolve locally” 按钮: 按照上图完成 Step3 然后本地修改完冲突,提交

    2024年02月03日
    浏览(54)
  • Git分支的合并策略有哪些?Merge和Rebase有什么区别?关于Merge和Rebase的使用建议

    参考:《Git 权威指南》、《Git团队协作》、快手git管理 (1)工作区域 首先来介绍介绍下Git的工作区域,分为 工作区 、 暂存区 和 仓库区 ,每个区域的转换关系如上图所示。 工作区(workspace) :就是我们平时本地存放项目代码的地方; 暂存区(index/stage) :用于临时存放

    2024年02月04日
    浏览(63)
  • git 三种合并方式(rebase / merge / squash)

    在使用 Git (分布式版本控制系统),往往不会直接在主分支上面直接开发,而是新建一个分支进行开发。 那么当我们在新分支上面完成一个功能时,便需要合并到主分支。 merge rebase and merge squash and merge 初始化 图 1 图1,初始两个分支的状态,现基于此对合并(merge)和变基

    2024年03月11日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包