devroom.io/content/blog/2012-08-14-move-your-latest-commits-to-a-separate-branch.md

1.0 KiB

+++ date = "2012-08-14" title = "Move your latest commits to a separate branch" tags = ["git", "protip"] slug = "move-your-latest-commits-to-a-separate-branch" +++ 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.