From: Jonathan Nieder Date: Tue, 29 Mar 2011 21:04:57 GMT Subject: Re: [PATCH] reset: update help text Message-ID: <20110329210457.GA14031@elie> In-Reply-To: <1301404805-12095-1-git-send-email-pclouds@gmail.com> (+cc: Christian, Michael, and Thomas) Nguyễn Thái Ngọc Duy wrote: > State --mixed is the default so users don't have to open up man page. > > Also make it clear how --hard and --merge are different. Thanks; I think the goal of this patch is a good one. > --- a/builtin/reset.c > +++ b/builtin/reset.c > @@ -243,17 +243,17 @@ int cmd_reset(int argc, const char **argv, const char *prefix) > struct commit *commit; > char *reflog_action, msg[1024]; > const struct option options[] = { > - OPT__QUIET(&quiet, "be quiet, only report errors"), > OPT_SET_INT(0, "mixed", &reset_type, > - "reset HEAD and index", MIXED), > + "reset HEAD and index (default)", MIXED), Nice. > OPT_SET_INT(0, "soft", &reset_type, "reset only HEAD", SOFT), > OPT_SET_INT(0, "hard", &reset_type, > "reset HEAD, index and working tree", HARD), > OPT_SET_INT(0, "merge", &reset_type, > - "reset HEAD, index and working tree", MERGE), > + "like --hard but keep local changes in working tree", MERGE), > OPT_SET_INT(0, "keep", &reset_type, > "reset HEAD but keep local changes", KEEP), The description does not make it obvious to me how these two (--merge and --keep) differ. I think the intent of the options are: --keep: start working on a different commit, carrying over local changes (like "git checkout") --merge: return to , cancelling a merge-like operation that creates some unmerged and some clean index entries Maybe something along these lines could be ok starting point? OPT_SET_INT(0, "keep", &reset_type, "move to , carrying over local changes in working tree", KEEP), OPT_SET_INT(0, "merge", &reset_type, "return to , cancelling failed merge or cherry-pick", MERGE),