Git merge VS rebase

落花浮王杯 提交于 2019-12-03 07:23:37

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!