git中的分支非常的轻量,其实就是一个文件,里面记录了分支所指向的commit id,下图中有两个分支分别是master和test,他们都指向了A2这个提交,HEAD是一个特殊的指针,他永远指向你当前所在的位置;有时候你可能不在某一个分支上,不要惊慌,你随时有权利去你想去的分支,git赋予了你新建,切换分支的能力

然后有时候世界并不总如上图那般美好,面对分叉的两个分支,git新手总是一脸茫然,本文我将讲述git中合并分支的方法

在git中合并分支有三种方法,分别是merge,rebase,cherry-pick,而其中merge又有三种区别,下面将一一介绍

fast-forward

如果待合并的分支在当前分支的下游,也就是说没有分叉时,会发生快速合并,从test分支切换到master分支,然后合并test分支

 
  1. git checkout master

  2. git merge test

这种方法相当于直接把master分支移动到test分支所在的地方,并移动HEAD指针

no-ff

如果我们不想要快速合并,那么我们可以强制指定为非快速合并,只需加上--no-ff参数

 
  1. git checkout master

  2. git merge –no-ff test

这种合并方法会在master分支上新建一个提交节点,从而完成合并

squash

svn的在合并分支时采用的就是这种方式,squash会在当前分支新建一个提交节点

squash和no-ff非常类似,区别只有一点不会保留对合入分支的引用

 
  1. git checkout master

  2. git merge –squash test

rebase

当要合并两个分叉的分支时,merge的方式是将待合入分支和当前分支不同的部分,在当前分支新建节点,如下图所示

rebase与merge不同,rebase会将合入分支上超前的节点在待合入分支上重新提交一遍,如下图,B1 B2会变为B1' B2',看起来会变成线性历史

cherry-pick

这命令简直就是神器,给你自由,你想把那个节点merge过来就把那个节点merge过来,其合入的不是分支而是提交节点

总结

只有知道了这些合并方式的区别,才能git在手,天下我有,任你分支在凌乱,我自岿然不动

继续学习

  • 起底Git-开篇
  • 起底Git-版本控制简史
  • 起底Git-Git简史
  • 起底Git-Git内部原理
  • 起底Git-Git基础
  • 起底Git-Git进阶
  • 起底Git-Git开发流程
  • 起底Git-Git常用命令总结

图解4种git合并分支方法相关推荐

  1. git 移动分支指针_图解4种git合并分支方法

    有时候我们会后悔,有时候我们会想回到过去,有时候我们想改变历史,然而在我们这个世界,目前来看是无法回到过去改变历史的 但在git的世界里,一切皆有可能,我们可以在多维空间里任意切换,随意改变一个宇宙的 ...

  2. 图解4种git合并分支方法 1

    有时候我们会后悔,有时候我们会想回到过去,有时候我们想改变历史,然而在我们这个世界,目前来看是无法回到过去改变历史的 但在git的世界里,一切皆有可能,我们可以在多维空间里任意切换,随意改变一个宇宙的 ...

  3. git合并分支后,删除分支_使用git删除合并的分支

    git合并分支后,删除分支 It's common courtesy to keep your git branch list clean, especially when colleagues ne ...

  4. git命令及git合并分支进行多人协作

    git命令及git合并分支进行多人协作 git命令大全 git的工作区.暂存区.本地仓库和远程仓库 git常用命令 git revert 和 git reset的区别 修改默认分支 合并分支 Git分 ...

  5. idea集成git合并分支_持续集成:合并故事

    idea集成git合并分支 六个月项目如何成为Vaporware的真实故事 北美游戏" 永远的毁灭公爵"的封面艺术. 经过15年的发展,它于2011年发布,这是Vaporware的 ...

  6. idea中使用git合并分支

    idea使用git 合并分支 1. 将主分支(master)更新到自己的分支(dev) 右下角点击分支.checkout到自己分支下.点击自己的分支.选择 remote branches 中的 ori ...

  7. 简单介绍Git合并分支的流程步骤

    这篇文章主要介绍了详解Git合并分支的流程步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 正常合并分支dev到master流 ...

  8. 【GitGitHub - 11】:Git合并分支

    文章目录 Git合并分支 模拟场景 创建分支用于修复bug 合并分支 删除分支 Git合并分支 模拟场景 我们主分支(main)有一个稳定的V4.0版本.现在发现了一个Bug.在不影响主线的情况下,我 ...

  9. git合并分支——带图解释一看就懂版

    git合并分支(一看就懂) 首先,我们创建dev分支,然后切换到dev分支: $ git checkout -b dev Switched to a new branch 'dev' git chec ...

最新文章

  1. 编译安装mysql带boost_编译安装mysql时报缺少boost1.59后,编译安装boost1.59
  2. RAID0,RAID1,RAID10,RAID5
  3. python接收邮件g_Python接收Gmail新邮件并发送到gtalk的方法
  4. http头部content-type与数据格式
  5. 租赁笔记本电脑哪里有_广东哪里有离心鼓风机优势-长沙鼓风机厂
  6. sqlserver html文档,[SQLServer]从SQL中的一个表中导出HTML文件表格
  7. python数据类型--数字、字符串
  8. AngularJS从构建项目开始
  9. java的JVM与垃圾回收机制
  10. Delphi第三方控件安装卸载指南
  11. 使用微信企业号发送工资条教程
  12. 网上管家婆软件,最新在线进销存软件。
  13. 网络高清视频远程会议系统EasyRTC在Windows10上运行程序无返回信息问题解决
  14. ThinkPad 交换 Ctrl 键和 Fn 键
  15. tar,bz2,bzip等格式解压缩命令汇总
  16. php 九宫格验证码,PHP+Ajax微信手机端九宫格抽奖实例
  17. 2018 ISCC re\web\misc WP
  18. 由中序和后序(前序)序列求前序(后序)序列
  19. 一文讲解单片机、ARM、MCU、DSP、FPGA、嵌入式错综复杂的关系
  20. ERP系统是什么意思?ERP系统有哪些品牌?

热门文章

  1. [转]美国知名天使投资人列出愿意投资的30大创意方向
  2. 【Qt】关于Qt翻译的要点
  3. 通过委托的实际应用理解委托
  4. Python - Object类
  5. 视频去水印教程2023年最新版
  6. 小米笔记本充电实测追求速度牺牲兼容性小米笔记本充电驱动_1G电影3秒传,最高100W充电,小米有品上线多功能拓展坞...
  7. 复制东西老你的计算机需要管理员,win10电脑复制文件到C盘需要管理员权限的解决方法...
  8. 平台云Deis部署2-deisctl安装
  9. ubuntu18.4分辨率只有800x600
  10. 脱发因素多护理最重要