企业备案号查询系统,廊坊seo网站排名,网站建设需要考虑因素,微信小程序开发 成都文章目录 前言是什么分析区别后言 前言 hello world欢迎来到前端的新世界 #x1f61c;当前文章系列专栏#xff1a;git操作相关 #x1f431;#x1f453;博主在前端领域还有很多知识和技术需要掌握#xff0c;正在不断努力填补技术短板。(如果出现错误#xff0c;感谢… 文章目录 前言是什么分析区别后言 前言 hello world欢迎来到前端的新世界 当前文章系列专栏git操作相关 博主在前端领域还有很多知识和技术需要掌握正在不断努力填补技术短板。(如果出现错误感谢大家指出) 感谢大家支持您的观看就是作者创作的动力 是什么
在使用 git 进行版本管理的项目中当完成一个特性的开发并将其合并到 master 分支时会有两种方式
git mergegit rebase
git rebase 与 git merge都有相同的作用都是将一个分支的提交合并到另一分支上但是在原理上却不相同
用法上两者也十分的简单
git merge 将当前分支合并到指定分支命令用法如下 git merge xxx(想要合并的分支名称) git rebase 将当前分支移植到指定分支或指定commit之上用法如下 git rebase -i 常见的参数有–continue用于解决冲突之后继续执行rebase git rebase --continue 分析
git merge 通过git merge将当前分支与xxx分支合并产生的新的commit对象有两个父节点
如果“指定分支”本身是当前分支的一个直接子节点则会产生快照合并
举个例子bugfix分支是从master分支分叉出来的如下所示 合并 bugfix分支到master分支时如果master分支的状态没有被更改过即 bugfix分支的历史记录包含master分支所有的历史记录
所以通过把master分支的位置移动到bugfix的最新分支上就完成合并 如果master分支的历史记录在创建bugfix分支后又有新的提交如下情况 这时候使用git merge的时候会生成一个新的提交并且master分支的HEAD会移动到新的分支上如下 从上面可以看到会把两个分支的最新快照以及二者最近的共同祖先进行三方合并合并的结果是生成一个新的快照
git rebase
同样master分支的历史记录在创建bugfix分支后又有新的提交如下情况 通过git rebase会变成如下情况 在移交过程中如果发生冲突需要修改各自的冲突如下 rebase之后master的HEAD位置不变。因此要合并master分支和bugfix分支 从上面可以看到rebase会找到不同的分支的最近共同祖先如上图的B
然后对比当前分支相对于该祖先的历次提交提取相应的修改并存为临时文件老的提交X和Y也没有被销毁只是简单地不能再被访问或者使用
然后将当前分支指向目标最新位置D, 然后将之前另存为临时文件的修改依序应用
区别
从上面可以看到merge和rebasea都是合并历史记录但是各自特性不同
merge 通过merge合并分支会新增一个merge commit然后将两个分支的历史联系起来 其实是一种非破坏性的操作对现有分支不会以任何方式被更改但是会导致历史记录相对复杂
rebase rebase 会将整个分支移动到另一个分支上有效地整合了所有分支上的提交 主要的好处是历史记录更加清晰是在原有提交的基础上将差异内容反映进去消除了 git merge所需的不必要的合并提交
后言 创作不易要是本文章对广大读者有那么一点点帮助 不妨三连支持一下您的鼓励就是博主创作的动力