Reputation: 4231
I am learning git-flow and I just did git flow feature finish <feature-name>
, which merged my feature branch to develop and removed it.
Instead of this, I want to push the feature branch to github, so I can merge it after a peer review.
So the question is, how do I 'undo' this command. Or in other words , how can I move my last two commits from develop to my feature branch?
Upvotes: 44
Views: 21007
Reputation: 5333
I found it easiest to just update master (we call it default) back to origin, with either
git checkout -B master origin/master
or the equivalent newer command
git switch -C master origin/master
checkout -B and switch -C (or --force-create) both move the branch to the new location if it already exists.
Update After thinking about it later, I half-considered deleting this, though it worked for me, because I suspect it might only work for the fast-forward case, rather than a regular merge. That also might explain why git reset --hard <SHA-from-reflog>
didn't work for me and got me into a confused state, i.e., because I "reset" my local master
rather than the feature branch head.
Upvotes: 0
Reputation: 14468
These steps should do the trick:
Get the sha's needed:
git log
<sha1>
is the commit right before the merge
<sha2>
is the last commit on develop before you started working on the feature
git checkout develop
git checkout -b feature/<feature-name>
git reset <sha1> --hard
git checkout develop
git reset <sha2> --hard
Push your feature branch.
Upvotes: 83