Merge VS Rebase

Posted loop0day

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Merge VS Rebase相关的知识,希望对你有一定的参考价值。

技术图片

Alice fork了Bob的upstream仓库(此时upstream仓库位于2),在fork的仓库中基于2提交了5,此时Alice基于5新建了enhance分支,提交7对master分支进行功能性增强,接着继续在master分支提交了6。

一段时间后,Alice对enhance分支的功能性增强很满意,决定在Bob的upstream仓库中发起pull request,Alice该怎么做?

由于Bob在2之后又进行了3和4的提交,所以Alice需要先fetch最新版upstream仓库的master分支,将其merge到fork的仓库的master分支中,如果有冲突需要解决冲突。

添加上游仓库upstream,名字随意。

1 git remote add upstream <repository>

 更新上游仓库upstream。

1 git remote update upstream

将上游仓库upstream的master分支合并到当前仓库的master分支,如下图所示。

1 git checkout master
2 git merge --no-ff upstream/master

技术图片

将当前仓库的enhance分支rebase到master分支上,如下图所示。

1 git checkout enhance
2 git rebase -i master

技术图片

此时再通过enhance分支进行pull request即可。

扩展知识

1) 使用git rebase提高PR质量

2) https://git-scm.com/docs/git-rebase

以上是关于Merge VS Rebase的主要内容,如果未能解决你的问题,请参考以下文章

git rebase VS git merge

好文转发git rebase vs git merge对比详情

合并代码还在用 git merge?我们都用 git rebase

merge和rebase的区别

图解 Git 基本命令 merge 和 rebase

git merge 及 git rebase的区别