Re: [PATCH] cmd_reset: don't trash uncommitted changes unless told to
- Date: Wed, 25 Jun 2008 16:22:29 -0400
- From: "Avery Pennarun" <apenwarr@xxxxxxxxx>
- Subject: Re: [PATCH] cmd_reset: don't trash uncommitted changes unless told to
On 6/25/08, Junio C Hamano <gitster@xxxxxxxxx> wrote:
> "Avery Pennarun" <apenwarr@xxxxxxxxx> writes:
>
> > How about making "git checkout" default to HEAD if no revision is
> > supplied? There's precedent for this in, say, git-diff (and I think a
> > few others).
>
> Won't fly. 'git checkout -- "$@"' is to revert to the last staged
> version.
Ah, I didn't catch the difference between HEAD and index there.
> * You say "git checkout -- file" when you want to "check out the file
> from the index";
The real question here is the --. Is it strictly needed? It's
optional in things like git-diff, which just do their best to guess
what you mean if you don't use the --.
If reset and checkout made the -- optional, then you could do:
git reset filename # undo an accidental "add"
git checkout filename # undo accidental modifications that haven't been added
...and save git reset --hard for people willing to take that risk.
(The fact that git-gui includes git reset --hard as a really
easy-to-click GUI command scared me the first time I saw it, too.)
I think simplifying the syntax might help to make the role of the
index less mysterious in the whole "revert" operation. It's not
obvious to me at all whether a revert-file ought to get the one from
HEAD or the one from the index. But I can easily understand and
explain checkout (copy index to working copy) and reset (undo an add).
Thanks,
Avery
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html