意外地分支了错误的分支,当我想合并到主服务器时,我必须合并两个分支

Lev*_*i_d 46 git version-control merge

所以我创建了一个我已经创建的另一个分支的分支,现在当我尝试将分支合并到master时,我遇到了必须合并两个分支的情况.

这是一张图

主 - >

 ->Branch 1  -> Branch 2
Run Code Online (Sandbox Code Playgroud)

我希望能够将分支2上的更改仅合并到master上,而不必合并分支1上的更改(如果有意义的话).我查看了重置并恢复,但似乎这些东西将删除我用分支2做的所有更改.任何想法?

谢谢

som*_*esh 75

使用以下语法尝试git rebase --onto:

将branch2的更改放在master上而不包括branch1

git rebase --onto master branch1 branch2
Run Code Online (Sandbox Code Playgroud)

相关产出来自git help rebase:

              o---o---o---o---o  master
                   \
                    o---o---o---o---o  next
                                     \
                                      o---o---o  topic
Run Code Online (Sandbox Code Playgroud)

请记住这里提到的变革风险和陷阱:http: //git-scm.com/book/en/Git-Branching-Rebasing


use*_*507 9

一种方法是使用cherry-pick.执行a git log branch2并找到所需的提交ID,然后master使用git checkout masterthen 切换到branchgit cherry-pick <commit_id>

有关详细信息,请参阅此帖子

如何在Git中合并特定的提交