I created a feature branch from master but I should have done it from develop branch how can I fix it?
For visualization I've done this:
D---E---F develop
/
A---B---C master
\
G---H feature
but I should have done this:
G---H feature
/
D---E---F develop
/
A---B---C master
I haven't tried anything, I am not sure how to approach this
CodePudding user response:
This is a text-book example of using git rebase, assuming you haven't brushed feature yet.
git checkout feature
git rebase develop
CodePudding user response:
This is simply done by re-creating all commits of feature on top of develop. A command which can do this, is git rebase:
git rebase --onto develop master feature
- Take all commits between head commit of
master(exclusive) and head commit offeature(inclusive) - Recreate them on top of the
developbranch
Note that re-creating commits are independent of the old commits and they will be assigned a new commit id/hash. If the history is already shared with others, it shouldn't be altered, unless absolutely necessary. Rewritten history also needs to be force-pushed, because the ref on the remote server cannot be fast-forwarded.
To get the changes of develop without rewriting history, simply use git merge to bring both histories together:
git checkout feature
git merge develop
