git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: can git reset or checkout be reverted?

From
Matthieu Moy <matthieu.moy@imag.fr>
Date
Feb 6, 2009, 14:43 UTC
Message-ID
<vpqiqnnbp7x.fsf@bauges.imag.fr>
In-Reply-To
<20090206141940.GB7231@b2j>
bill lam <cbill.lam@gmail.com> writes:
> If I want to recall a old version of testing by
>
> git reset --hard sha1

git reset is mostly about changing the place the current branch points to. If you checkout branch master, and then say "git reset --hard sha1", then, you say "OK, from now, the tip of branch master will be sha1".

> git checkout sha1
This is the one you were looking for.
> then git log does not show anything beyond that commit. It does give
> some warning and recommend -b switch next time.

It does not "recommand" it, it says that _if_ you wanted to create a branch, you could have done it with -b.

> If I only do that by accident or ignorance. How to revert to the
> original HEAD?

Case 1: you used checkout. Then, the branch still points to where you were before the "checkout". Just "git checkout master", or replace master with where you used to be.

In any case: the reflog can help you. It keeps track of where your HEAD and other references (branches, ...) have been pointing before.

git reflog git reflog show master

to see it, and this allows you to say things like

git checkout HEAD@{1} git reset HEAD@{1}

The HEAD@{1} means "where HEAD used to be one move ago".
-- 
Matthieu
Previous: bill lamNext: Jakub Narebski
Message 2 of 5 in “can git reset or checkout be reverted?”
  1. bill lamFeb 6, 2009
  2. Matthieu MoyFeb 6, 2009
  3. Jakub NarebskiFeb 6, 2009
  4. Sitaram ChamartyFeb 6, 2009
  5. bill lamFeb 7, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.