Newbie git experience: resetting local git tree back to an earlier state

Phil Costin philcostin at hotmail.com
Sun Apr 30 07:00:25 CDT 2006


Dan Kegel wrote:

> This is a little success story.  I thought I'd post it to encourage other
> people to try Mike's tree via git.
> 
> I just started using git so I could track Mike McCormack's tree.
> I first followed the instructions at
>   http://wiki.winehq.org/GitWine
> to get a winehq tree, then followed Mike's instructions at
>  http://www.winehq.org/pipermail/wine-devel/2006-April/047208.html
> to grab the latest changes.
> 
> The commands I used on my Ubuntu box were, all in all:
> 
> sudo apt-get install git-core git-doc
> git clone git://source.winehq.org/git/wine.git wine-git
> cat > .git/remotes/mmbranch <<EOF
> URL: http://mandoo.dyndns.org/wine.git
> Pull: refs/heads/master:refs/heads/mmbranch
> EOF
> git fetch mmbranch
> git pull . mmbranch
> 
> Everything went smoothly; it was rather fabulous.
> Then I ran into a regression, and wanted to roll back to Mike's tree as
> of a certain patch,
>   http://www.winehq.org/pipermail/wine-patches/2006-April/026126.html
> 
> I gather the right command for this is "git reset", so I read the man
> page.
> It wants a "commit-ish" as the argument.  (Boy, that's helpful.)
> Looking at that patch, I saw its filename was an md5 sum, so I figured
> maybe that was the "commit-ish", and tried
> 
> $ git reset --soft b32ae7a40c601427fea7cb9f145138221030f869
> fatal: Needed a single revision
> 
> Crud.  At this point I punted, sent an email to James asking for help,
> ate a cookie, and periodically re-read google and the man pages.
> Eventually it dawned on me that you can specify a particular commit
> by how many back from the head it is, e.g. HEAD~5 is 5 back from
> the tip.  I also stumbled on the command "git log", which shows you
> all changes, most recent first.  Sure enough, the change I wanted was
> eight back from the head.  So I tried
> 
> $ git reset --soft HEAD~8
> 
> And voila, it worked; "git log" now showed the desired change as
> the latest!
> (Whew.  I thought I was going to drown in man pages for a while there.)
> 
> Annoyingly, "make" did nothing after this, but I knew the changes
> I wanted to revert were all in one DLL, so I just removed that DLL's
> .o files and ran make again.
> 
> I feel a bit more comfortable with git now!
> - Dan


Thanks Dan,

That's just what I needed!

Phil Costin




More information about the wine-devel mailing list