From: Junio C Hamano Date: Wed, 25 Jun 2008 09:23:31 GMT Subject: Re: [PATCH] cmd_reset: don't trash uncommitted changes unless told to Message-ID: <7vr6al3m24.fsf@gitster.siamese.dyndns.org> In-Reply-To: <48620C1A.6000509@panasas.com> Boaz Harrosh writes: > Junio C Hamano wrote: > >> "reset --hard" has *ALWAYS* meant to be destructive --- discarding >> potential local cruft is the whole point of the operation. > > I was under the impression that --hard means working-directory-also > as opposed to tree-and-index-only. Nothing to do with > destructive-discarding. Then you should revise your impression, as it is simply *WRONG*. When I say something about history of git, I know what I am talking about ;-) Reset has been about nuking local changes from the very beginning. That is why it removes MERGE_HEAD, rr-cache/MERGE_RR as well as removing conflicted stages in the index and reverts local changes from the worktree. It is "my worktree state is a mess, and I cannot even describe nor care which paths are dirty --- just get rid of the local changes so that I can start working cleanly from a checkout of HEAD".