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

Re: 'git checkout -f' versus 'git reset --hard'

From
Shawn O. Pearce <spearce@spearce.org>
Date
Apr 5, 2007, 15:29 UTC
Message-ID
<20070405152925.GG5436@spearce.org>
In-Reply-To
<20070405134311.GA18163@coredump.intra.peff.net>
Jeff King <peff@peff.net> wrote:
Show 9 quoted lines
> On Thu, Apr 05, 2007 at 08:36:09AM -0500, Bill Lear wrote:
> 
> > After a failed merge, I want to undo things.  I typically use git
> > reset --hard, and it works like a charm.  Others have tried to use git
> > checkout -f, but I have cautioned that git reset --hard is really the
> > way to do it.  Is there a difference here, or are they equivalent?
> 
> Skimming through the code (and looking at the output of sh -x), it looks
> like both just end up executing git-read-tree --reset -u $HEAD.

Sure, but git-reset also whacks MERGE_MSG, rr-cache/MERGE_RR, SQUASH_MSG, SQUASH_HEAD. Maybe checkout should do the same.

I guess checkout -f is fine, and does the job, but usually we say reset --hard. :-)

-- 
Shawn.
Previous: Jeff KingNext: Linus Torvalds
Message 3 of 4 in “'git checkout -f' versus 'git reset --hard'”
  1. Bill LearApr 5, 2007
  2. Jeff KingApr 5, 2007
  3. Shawn O. PearceApr 5, 2007
  4. Linus TorvaldsApr 5, 2007

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.