图解4种git合并分支方法
git中的分支非常的轻量,其实就是一个文件,里面记录了分支所指向的commit id,下图中有两个分支分别是master和test,他们都指向了A2这个提交,HEAD是一个特殊的指针,他永远指向你当前所在的位置;有时候你可能不在某一个分支上,不要惊慌,你随时有权利去你想去的分支,git赋予了你新建,切换分支的能力
然后有时候世界并不总如上图那般美好,面对分叉的两个分支,git新手总是一脸茫然,本文我将讲述git中合并分支的方法
在git中合并分支有三种方法,分别是merge,rebase,cherry-pick,而其中merge又有三种区别,下面将一一介绍
fast-forward
如果待合并的分支在当前分支的下游,也就是说没有分叉时,会发生快速合并,从test分支切换到master分支,然后合并test分支
git checkout master
git merge test
这种方法相当于直接把master分支移动到test分支所在的地方,并移动HEAD指针
no-ff
如果我们不想要快速合并,那么我们可以强制指定为非快速合并,只需加上--no-ff
参数
git checkout master
git merge –no-ff test
这种合并方法会在master分支上新建一个提交节点,从而完成合并
squash
svn的在合并分支时采用的就是这种方式,squash会在当前分支新建一个提交节点
squash和no-ff非常类似,区别只有一点不会保留对合入分支的引用
git checkout master
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合并分支方法相关推荐
- git 移动分支指针_图解4种git合并分支方法
有时候我们会后悔,有时候我们会想回到过去,有时候我们想改变历史,然而在我们这个世界,目前来看是无法回到过去改变历史的 但在git的世界里,一切皆有可能,我们可以在多维空间里任意切换,随意改变一个宇宙的 ...
- 图解4种git合并分支方法 1
有时候我们会后悔,有时候我们会想回到过去,有时候我们想改变历史,然而在我们这个世界,目前来看是无法回到过去改变历史的 但在git的世界里,一切皆有可能,我们可以在多维空间里任意切换,随意改变一个宇宙的 ...
- git合并分支后,删除分支_使用git删除合并的分支
git合并分支后,删除分支 It's common courtesy to keep your git branch list clean, especially when colleagues ne ...
- git命令及git合并分支进行多人协作
git命令及git合并分支进行多人协作 git命令大全 git的工作区.暂存区.本地仓库和远程仓库 git常用命令 git revert 和 git reset的区别 修改默认分支 合并分支 Git分 ...
- idea集成git合并分支_持续集成:合并故事
idea集成git合并分支 六个月项目如何成为Vaporware的真实故事 北美游戏" 永远的毁灭公爵"的封面艺术. 经过15年的发展,它于2011年发布,这是Vaporware的 ...
- idea中使用git合并分支
idea使用git 合并分支 1. 将主分支(master)更新到自己的分支(dev) 右下角点击分支.checkout到自己分支下.点击自己的分支.选择 remote branches 中的 ori ...
- 简单介绍Git合并分支的流程步骤
这篇文章主要介绍了详解Git合并分支的流程步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 正常合并分支dev到master流 ...
- 【GitGitHub - 11】:Git合并分支
文章目录 Git合并分支 模拟场景 创建分支用于修复bug 合并分支 删除分支 Git合并分支 模拟场景 我们主分支(main)有一个稳定的V4.0版本.现在发现了一个Bug.在不影响主线的情况下,我 ...
- git合并分支——带图解释一看就懂版
git合并分支(一看就懂) 首先,我们创建dev分支,然后切换到dev分支: $ git checkout -b dev Switched to a new branch 'dev' git chec ...
最新文章
- 编译安装mysql带boost_编译安装mysql时报缺少boost1.59后,编译安装boost1.59
- RAID0,RAID1,RAID10,RAID5
- python接收邮件g_Python接收Gmail新邮件并发送到gtalk的方法
- http头部content-type与数据格式
- 租赁笔记本电脑哪里有_广东哪里有离心鼓风机优势-长沙鼓风机厂
- sqlserver html文档,[SQLServer]从SQL中的一个表中导出HTML文件表格
- python数据类型--数字、字符串
- AngularJS从构建项目开始
- java的JVM与垃圾回收机制
- Delphi第三方控件安装卸载指南
- 使用微信企业号发送工资条教程
- 网上管家婆软件,最新在线进销存软件。
- 网络高清视频远程会议系统EasyRTC在Windows10上运行程序无返回信息问题解决
- ThinkPad 交换 Ctrl 键和 Fn 键
- tar,bz2,bzip等格式解压缩命令汇总
- php 九宫格验证码,PHP+Ajax微信手机端九宫格抽奖实例
- 2018 ISCC re\web\misc WP
- 由中序和后序(前序)序列求前序(后序)序列
- 一文讲解单片机、ARM、MCU、DSP、FPGA、嵌入式错综复杂的关系
- ERP系统是什么意思?ERP系统有哪些品牌?
热门文章
- [转]美国知名天使投资人列出愿意投资的30大创意方向
- 【Qt】关于Qt翻译的要点
- 通过委托的实际应用理解委托
- Python - Object类
- 视频去水印教程2023年最新版
- 小米笔记本充电实测追求速度牺牲兼容性小米笔记本充电驱动_1G电影3秒传,最高100W充电,小米有品上线多功能拓展坞...
- 复制东西老你的计算机需要管理员,win10电脑复制文件到C盘需要管理员权限的解决方法...
- 平台云Deis部署2-deisctl安装
- ubuntu18.4分辨率只有800x600
- 脱发因素多护理最重要