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
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
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.