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