Subject: Re: Commit to wrong branch. How to fix?

From: Michael J Gruber <[email-masked]>
Date: Fri, 04 Sep 2009 18:19:00 +0200

Howard Miller venit, vidit, dixit 04.09.2009 17:54:
> I commited to the wrong branch and I can't figure out what to do. To  
> make matters worse I then did 'git reset HEAD^' which has made things  
> much worse. It didn't remove the commit and now I can't change  
> branches. I'm utterly confused. Any help much appreciated!
> 
> Moral - use git status liberally and read it carefully before doing  
> anything. A 'git undo" command would be great is someone is feeling  
> generous :-) 

Whatever happens, don't panic ;)

Let's say "geesh" is the branch on which you committed by mistake, and
which you have reset.

git reflog geesh

which show you what has happened to that branch lately. In particular,
it will list the "lost" commit. (Most probably it is the same as geesh@{1}.)

git tag sigh sha1ofthatcommit

will assign the tag "sigh", so that it won't get lost by doing "git gc"
or such. Now you can lean back!

Next step is committing "sigh" to the right branch. Depends on how you
arrived at that commit. Did you commit the complete tree you wanted, or
did you apply a change to geesh which you rather had wanted applied to
some other branch?

Michael