一、为什么需要将一个 commit 复制到其他分支上去呢?
在我们的实际开发的过程中,我们的项目中会存在多个分支。
在某些情况下,可能需要将某一个分支上的 commit 复制到另一个分支上去。
二、具体操作流程
![](https://img2018.cnblogs.com/blog/737276/201903/737276-20190319221842725-1728412596.png)
就像这张图所描述的这样,将 develop 分支中的 C~E 部分复制到 master 分支中去。
这时我们就可以用 git rebase 命令来实现了。
目前 master 分支上只有一个 commit。
![](https://img2018.cnblogs.com/blog/737276/201903/737276-20190319222426549-280472294.png)
develop 分支上有四个 commit。
![](https://img2018.cnblogs.com/blog/737276/201903/737276-20190319222508688-209672579.png)
我们需要将最后三个 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。
![](https://img2018.cnblogs.com/blog/737276/201903/737276-20190319222108698-1646638883.png)
然后 git log 查看,这三个提交已经在 master 分支了。
![](https://img2018.cnblogs.com/blog/737276/201903/737276-20190319222555830-143455273.png)
三、总结
在这篇文章中,我们主要是使用了 git rebase 命令,来实现将一段 commit 复制到另一个分支的功能。
其实在实际项目版本控制当中,git rebase 还有很多方面的应用。我们以后再详细的介绍。