tags:

views:

66

answers:

3

Hey,

I have been working on a branch which we can call "A". I just realized that the code I have added since I last committed should rather be in a specific (experimental) branch, but not in "A". How can I commit the changes to a new branch and leave branch "A" as it was when I last committed?

+4  A: 

If the changes are staged or your working directory, you can simply checkout into a new branch like so:

git checkout -b branch_name

You can then commit directly into the new branch.

Blair Holloway
Sometimes things are just too simple. Thanks mate.
Siggi
@Siggi: You might want to accept this answer so others with the same question can find it more easily (and to give credit to Blair).
Jefromi
Done, I just couldn't do it when he posted the answer because of the "accept answer" time limit... and then I forgot.
Siggi
+2  A: 
git branch new_experimental_branch # create new branch, pointing at the current commit
git reset --hard HEAD^             # now the main branch points to the previous commit
Roman Cheplyaka
-1: The OP's changes are *uncommitted*. This would destroy that work.
Jefromi
Sorry, misread the question.
Roman Cheplyaka
A: 
git stash
git checkout branch-A
git stash pop
verhogen