使用 git rebase 命令合并分支

场景:

我的远程仓库中有两条分支,一条是主分支 dev ,一条是我自己的开发分支 llf。我的本地仓库中只有一条主分支 llf,平时提交代码都是在这条分支上,这条分支上的所有更新将会 push 到远程分支 llf 上。现在,我的远程 llf 分支显示:与 dev 主分支相比,领先1个 commit,落后1个commit。

需求:

将远程 dev 主分支上更新的内容,合并入远程 llf 分支,方便在远程 llf 分支上继续进行后续的提交。

解决:

  1. git branch test(当前在本地分支 llf 上)

    在本地新建 test 分支。本地 llf 分支与远程 llf 分支的内容全部一样,这里新建的 test 分支是为了保留 llf 分支上的所有内容。

  2. git reset --hard origin/dev(当前在本地分支 llf 上)

    将远程主分支 dev 上的代码强制覆盖到当前本地分支(本地主分支 llf )上。

  3. git checkout test

    切换本地分支为 test 分支。

  4. git rebase llf(当前在本地分支 test 上)

    将 test 分支上的内容 rebase 到本地主分支 llf 上。

    关于git rebase的相关原理可以参考这篇文章:Git分支管理技巧-使用rebase让你的分支笔直生长,写的非常好。

  5. git checkout llf

    将本地分支切换为 llf 主分支。

  6. git merge test

    将 test 分支上的内容合并入 llf 分支。由于没有不同于 test 的提交,merge 操作不会产生多余的 merge commit,这种方式会让分支图变得非常整洁美观。

  7. git branch -d test

    删除没用的 test 临时分支。

猜你喜欢

转载自blog.csdn.net/weixin_45605541/article/details/128789244