29 lines
1.0 KiB
Markdown
29 lines
1.0 KiB
Markdown
|
---
|
||
|
title: "Move your latest commits to a separate branch"
|
||
|
kind: article
|
||
|
slug: move-your-latest-commits-to-a-separate-branch
|
||
|
created_at: 2012-08-14
|
||
|
tags:
|
||
|
- git
|
||
|
- protip
|
||
|
---
|
||
|
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.
|