How can I rebase part of a branch to the master branch?

后端 未结 1 916
情深已故
情深已故 2021-01-21 09:14

Originally, I had something like this:

      C---D (branch1)
     /
A---B (master)

Because I needed to work on something else (which was unrela

相关标签:
1条回答
  • 2021-01-21 09:39

    The ASCII graphs in your question have an uncanny resemblance to those in the second example describing the usage of the --onto flag in the git-rebase man page:

    Another example of --onto option is to rebase part of a branch. If we have the following situation:

                H---I---J topicB
               /
          E---F---G  topicA
         /
    A---B---C---D  master
    

    then the command

    git rebase --onto master topicA topicB
    

    would result in:

         H'--I'--J'  topicB
        /
        | E---F---G  topicA
        |/
    A---B---C---D  master
    

    That example indicates that you will land in the desired situation by running

    git rebase --onto master branch1 branch2
    

    However, you also write that you've already pushed branch2 to some remote when your repo looked like your second ASCII graph. Are you sharing the remote in question with anybody else? In that case, think twice (or thrice!) before rebasing, as it's a form of history rewriting, and you should never rewrite history has been shared.

    0 讨论(0)
提交回复
热议问题