Skip to main content

Move your latest commits to a separate branch

·153 words·1 min· ·
Git Protip
Ariejan de Vroom
Author
Ariejan de Vroom
Jack of all Trades, Professional Software Craftsman

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.

Related

Showing Ruby, Rails and git info in your app
·206 words·1 min
Ruby Rails Protip
Removing untracked files and directories with git
·346 words·2 mins
Git
Recursively fixing file and directory permissions
·126 words·1 min
Linux Bash Git Sh File Permissions