From: Junio C Hamano <gitster@pobox.com>
To: Pierre Habouzit <madcoder@debian.org>
Cc: Nicolas Pitre <nico@cam.org>, Matthieu Moy <Matthieu.Moy@imag.fr>,
Theodore Tso <tytso@mit.edu>, Sam Vilain <sam@vilain.net>,
git@vger.kernel.org
Subject: Re: [PATCH] Documentation: add a planning document for the next CLI revamp
Date: Sun, 02 Nov 2008 14:17:05 -0800 [thread overview]
Message-ID: <7vabch22ou.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <20081030170329.GK24098@artemis.corp> (Pierre Habouzit's message of "Thu, 30 Oct 2008 18:03:29 +0100")
Pierre Habouzit <madcoder@debian.org> writes:
> On Thu, Oct 30, 2008 at 05:00:18PM +0000, Nicolas Pitre wrote:
>
>> If you have a file argument, the --hard option is redundant, isn't it?
>> So what about simply "git reset <file>" ?
>
> errrrm, git reset <file> resets the index notion of the file to its status
> in HEAD... which I'm sure is *somehow* useful to "some" people ;P
I'd agree that 'reset' is rather unfortunate. It very originally was all
about the index (the "mixed" semantics, specifically "git reset" without
any committish nor any pathspec, was the original use case) and nothing
else. IOW, "I staged a wrong change, let's start over by discarding all
staged changes". A logical extension to it is "git reset -- pathspec",
IOW, "I know which paths I fubared, please reset only these paths, as
other staged changes are Ok".
So "reset <file>" is very much useful.
Then 'reset' learned to also muck with HEAD, so "reset HEAD^" (still
mixed, without any pathspec) can be used to amend the latest commit but
without losing the state you would eventually want to arrive at. A
logical extension to this was "git reset --hard HEAD^" to nuking instead
of amending the mistake, and "git reset --soft HEAD^" to save the trouble
of staging the changes when the mistake you are fixing is small compared
to the entire change.
"checkout [$committish] $path" came much later, and the command is all
about index and files, and never about resetting HEAD. "checkout $path"
does "reset --hard $path" (notice there is no $committish in either one)
would have done, so we stopped enhancing the "reset" command in that
direction.
next prev parent reply other threads:[~2008-11-02 22:19 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-30 3:48 [PATCH] Documentation: add a planning document for the next CLI revamp Sam Vilain
2008-10-30 10:55 ` Stefan Karpinski
2008-10-31 11:38 ` Kyle Moffett
2008-10-30 13:24 ` Pierre Habouzit
2008-10-30 15:25 ` Julian Phillips
2008-10-31 0:34 ` Jeff King
2008-11-02 21:53 ` Junio C Hamano
2008-11-03 13:47 ` Pierre Habouzit
2008-10-30 14:34 ` Nicolas Pitre
2008-10-30 14:52 ` Shawn O. Pearce
2008-10-30 14:59 ` Mike Hommey
2008-10-30 15:01 ` Pierre Habouzit
2008-10-30 16:53 ` Nicolas Pitre
2008-10-30 17:31 ` Sam Vilain
2008-10-30 18:28 ` Nicolas Pitre
2008-10-30 22:46 ` Yann Dirson
2008-10-30 23:28 ` Sam Vilain
2008-10-30 23:55 ` Jakub Narebski
2008-10-31 6:51 ` Sam Vilain
2008-10-31 7:36 ` Jakub Narebski
2008-11-03 8:43 ` Sam Vilain
2008-11-03 12:06 ` Jakub Narebski
2008-11-01 0:37 ` Johannes Schindelin
2008-10-30 14:39 ` Theodore Tso
2008-10-30 14:43 ` Pierre Habouzit
2008-10-30 16:30 ` Theodore Tso
2008-10-30 16:43 ` Pierre Habouzit
2008-10-30 17:44 ` Sam Vilain
2008-10-30 17:03 ` Nicolas Pitre
2008-11-02 6:08 ` Junio C Hamano
2008-11-02 10:09 ` Theodore Tso
2008-10-30 15:02 ` Andreas Ericsson
2008-11-01 19:57 ` Elijah Newren
2008-10-30 15:20 ` Matthieu Moy
2008-10-30 17:00 ` Nicolas Pitre
2008-10-30 17:03 ` Pierre Habouzit
2008-10-30 17:17 ` Nicolas Pitre
2008-10-30 18:06 ` Sam Vilain
2008-11-02 22:17 ` Junio C Hamano [this message]
2008-11-03 6:01 ` Sam Vilain
2008-11-01 19:42 ` Elijah Newren
2008-10-30 17:51 ` Sam Vilain
2008-10-30 23:27 ` Theodore Tso
2008-11-01 20:27 ` Elijah Newren
2008-11-02 1:06 ` Theodore Tso
2008-11-02 4:41 ` Elijah Newren
2008-11-01 19:26 ` Elijah Newren
2008-11-02 22:01 ` Junio C Hamano
2008-11-01 18:36 ` Elijah Newren
[not found] <20081030002239.D453B21D14E@mail.utsl.gen.nz>
2008-10-31 0:31 ` Jeff King
2008-10-31 6:40 ` Sam Vilain
2008-10-31 8:20 ` Pierre Habouzit
2008-11-02 4:18 ` Jeff King
2008-11-02 9:56 ` Theodore Tso
2008-10-31 16:46 ` Johannes Schindelin
2008-11-02 3:42 ` Jeff King
2008-11-02 3:53 ` Jeff King
2008-11-02 22:27 ` Junio C Hamano
2008-11-03 5:59 ` Sam Vilain
2008-11-03 9:48 ` Jakub Narebski
2008-11-03 9:53 ` Sverre Rabbelier
2008-11-04 9:18 ` Dmitry Potapov
2008-11-04 18:10 ` Sam Vilain
2008-11-04 19:46 ` Junio C Hamano
2008-11-05 3:05 ` Jeff King
2008-11-05 6:40 ` Junio C Hamano
2008-11-05 22:53 ` Dmitry Potapov
2008-11-03 6:56 ` Jeff King
2008-11-03 6:59 ` Jeff King
2008-11-03 9:25 ` Pierre Habouzit
2008-11-03 23:33 ` Junio C Hamano
2008-11-04 0:02 ` Pierre Habouzit
2008-11-04 0:44 ` Junio C Hamano
2008-11-04 5:20 ` Jeff King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7vabch22ou.fsf@gitster.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=Matthieu.Moy@imag.fr \
--cc=git@vger.kernel.org \
--cc=madcoder@debian.org \
--cc=nico@cam.org \
--cc=sam@vilain.net \
--cc=tytso@mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).