一、为什么需要将一个 commit 复制到其他分支上去呢?
在我们的实际开发的过程中,我们的项目中会存在多个分支。
在某些情况下,可能需要将某一个分支上的 commit 复制到另一个分支上去。
二、具体操作流程
就像这张图所描述的这样,将 develop 分支中的 C~E 部分复制到 master 分支中去。
这时我们就可以用 git rebase 命令来实现了。
目前 master 分支上只有一个 commit。
develop 分支上有四个 commit。
我们需要将最后三个 commit,复制到 master 分支上去。
ps: 命令说明
- // startpoint 第一个 commit id, endpoint 最后一个 commit id,branchName 就是目标分支了。
- $ git rebase [startpoint] [endpoint] --onto [branchName]
执行 git rebase 命令之后,我们发现当前的 HEAD 处于游离状态。
所以我们需要使用 git reset 命令,将 master 所指向的 commit id 设置为当前 HEAD 所指向的 commit id。
然后 git log 查看,这三个提交已经在 master 分支了。
三、总结
在这篇文章中,我们主要是使用了 git rebase 命令,来实现将一段 commit 复制到另一个分支的功能。
其实在实际项目版本控制当中,git rebase 还有很多方面的应用。我们以后再详细的介绍。