Move branch to another branch

2019-03-15 02:10发布

问题:

I have started doing some work on a branch which I have in term realised was the wrong branch. Is there a way to move a branch to a different branch.

For example:

A -- B -- C -- D -- HEAD
 \-- E -- F -- G -- H -- I -- J
      \-- K -- L

And I want this:

A -- B -- C -- D -- HEAD
 \    \-- K -- L
  \
   \-- E -- F -- G -- H -- I -- J

回答1:

Let's say you've named your branches like so:

    A -- B -- C -- D (master)
     \-- E -- G -- H -- I -- J (current-parent)
          \-- K -- L (my-branch)

What you want to do is rebase my-branch onto the B commit like so:

    git rebase current-parent my-branch --onto B


回答2:

You could use git rebase --onto, e.g.,

git rebase --onto new-base old-base your-branch

So in your case, something like:

git rebase --onto B E L

should work.



回答3:

This is just the sort of thing git rebase can do.

https://www.kernel.org/pub/software/scm/git/docs/git-rebase.html