The situation is pretty straightforward. You have been making commits for that new feature in your master
branch. Naughty you!
Let’s assume you want to have this:
A - B - (C) - D - E - F
C
was the last commit you pulled from origin
and D, E and F are commits you just made but should have been in their own branch. This is what you wanted:
A - B - (C)
\ D - E F
Step 1: Assuming you’re at F
on master
, create a new branch with those commits:
git branch my_feature_branch
Then, still on master
, reset back to commit C
. This is 3 commits back.
git reset --hard HEAD~3
Okay, you’re master
is now back at C
, which you lasted pulled, and the my_feature_branch
includes D, E and F. Just checkout my_feature_branch
and continue work as usual. I’m sure no one saw what you just did.