这篇文章上次修改于 2245 天前,可能其部分内容已经发生变化,如有疑问可询问作者。 有时候我们希望只合并某个分支上的某次修改commit到指定的分支上,而不是全部。那么就可以使用cherry-pick命令来操作了. # 合并某个分支上的单个commit 使用git log 查看提交的信息,记住commit id. git checkout 要合并的目标分支 git cherry-pick 某个commit id // 把某个commit id的提交合并到当前分支. 例如develop分支上得某个fix修改36d7da2,要合并到release分支 ``` git checkout release git cherry-pick 36d7da2 ``` 36d7da2 就被合并到release分支,并在release中添加了新的commit(作为一个新的commit)。cherry-pick 和merge比较类似,如果git不能合并代码改动(比如遇到合并冲突),git需要你自己来解决冲突并手动添加commit。 # 合并某个分支上的一系列commits 在一些特性情况下,合并单个commit并不够,你需要合并一系列相连的commits。这种情况下就不要选择cherry-pick了,rebase 更适合。还以上例为例,假设你需要合并feature分支的commit 76cada ~62ecb3 到master分支。 首先需要基于feature创建一个新的分支,并指明新分支的最后一个commit: ``` git checkout -b newbranch 62ecb3 ``` 然后,rebase这个新分支的commit到master(--onto master)。76cada^ 指明你想从哪个特定的commit开始。 ``` git rebase --onto master 76cada^ ``` 转自:https://blog.csdn.net/anhenzhufeng/article/details/77962943
没有评论