git------git变基的总结

就根据下图初始图看:
变基定义:


提取在 C4 中引入的补丁和修改,然后在 C3 的基础上应用一次。在 Git 中,这种操作就叫做 变基。

git rebase变基合并 与 git merge合并:

1. 整合分方法merge 命令。 它把两支的新快C3 C4)以及二者的 共同C2)进行三方合并,并的结果生成一个新的快照(并)。

2. 你可以取在 C4 引入补丁和修改,然后在 C3 用一次。在 Git 中,这种操作就变基

 首先:分支初始状态是这样的

 接着:采取merge来合并当前最新的分支master 和 experiment

即采取: git checkout master    >>>  git merge experiment  即可实现合并;

原理:它会把两支的新快C3 C4)以及二者的 共同C2)进行三方合并,并的结果生成一个新的快照(并


采取变基rebase操作来整合分支,为一条分支(根据初始状态图)

即输入该命令:

$ git checkout experiment
$ git rebase master
First, rewinding head to replay your work on top of it...
Applying: added staged command
 
原理:
先找 到这 支( 当前 experiment 、变 作的目标 基底分 master )的
C2 ,然后对 当前 支相对于 历次提 取相 改并 文件 ,然后 当前 向目
基底 C3 , 后以此 之前 文件 改依 用。
 

变基第二步:(现在回master 支,进行一次快进

$ git checkout master
$ git merge experiment
此时,两者的状态均为最新的状态了
此时,C4' 指向的快照就和上面使用 merge 命令的例子中 C5 指向的快照一模一样了。
 

 

两者之间的异同:

 
 1.这两种整合方法的最终结果没有任何区别,但是变基使得提交历史更加整洁。 你在查看一个经过变基的分支的历史记录时会发现,
尽管实际的开发工作是并行的,但它们看上去就像是串行的一样,提交历史是一条直线没有分叉。

2. 这样做的目的是为了确保在向远程分支推送时能保持提交历史的整洁

3. 无论是通过变基,还是通过三方合并,整合的最终结果所指向的快照始终是一样的,只不过提交历史不同罢了。 
变基是将一系列提交按照原有次序依次应用到另一分支上,而合并是把最终结果合在一起。
 
发布了163 篇原创文章 · 获赞 31 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/COCOLI_BK/article/details/103575480