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

[PATCH v2 13/14] reset: allow --keep with --stage

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Oct 14, 2013, 22:29 UTC
Message-ID
<1381789769-9893-11-git-send-email-felipe.contreras@gmail.com>
In-Reply-To
<1381789769-9893-1-git-send-email-felipe.contreras@gmail.com>
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 Documentation/git-reset.txt |  2 +-
 builtin/reset.c             | 13 ++++++++++---
 2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/Documentation/git-reset.txt b/Documentation/git-reset.txt
index 5cd75a8..a1419c9 100644
--- a/Documentation/git-reset.txt
+++ b/Documentation/git-reset.txt
@@ -11,7 +11,7 @@ SYNOPSIS
 'git reset' [-q] [<tree-ish>] [--] <paths>...
 'git reset' (--patch | -p) [<tree-ish>] [--] [<paths>...]
 'git reset' [--soft | --mixed | --hard | --merge | --keep] [-q] [<commit>]
-'git reset' [--stage | --work] [-q] [<commit>]
+'git reset' [--stage | --work | --keep] [-q] [<commit>]
 
 DESCRIPTION
 -----------
diff --git a/builtin/reset.c b/builtin/reset.c
index fbc1abc..dde03a7 100644
--- a/builtin/reset.c
+++ b/builtin/reset.c
@@ -23,7 +23,7 @@
 
 static const char * const git_reset_usage[] = {
 	N_("git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]"),
-	N_("git reset [--stage | --work] [-q] [<commit>]"),
+	N_("git reset [--stage | --work | --keep] [-q] [<commit>]"),
 	N_("git reset [-q] <tree-ish> [--] <paths>..."),
 	N_("git reset --patch [<tree-ish>] [--] [<paths>...]"),
 	NULL
@@ -295,8 +295,15 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
 	}
 
 	if (stage >= 0 || working_tree >= 0) {
-		if (reset_type != NONE)
+		int keep = 0;
+
+		if (reset_type == KEEP) {
+			if (working_tree == 1)
+				die(_("--keep is incompatible with --work"));
+			keep = 1;
+		} else if (reset_type != NONE) {
 			die(_("--{stage,work} are incompatible with --{hard,mixed,soft,merge}"));
+		}
 
 		if (working_tree == 1) {
 			if (stage == 0)
@@ -304,7 +311,7 @@ int cmd_reset(int argc, const char **argv, const char *prefix)
 			reset_type = HARD;
 		} else {
 			if (stage == 1)
-				reset_type = NONE;
+				reset_type = keep ? KEEP : NONE;
 			else
 				reset_type = SOFT;
 		}
-- 
1.8.4-fc
Previous: Felipe ContrerasNext: Felipe Contreras
Message 26 of 30 in “completion: update 'git reset' new stage options”
  1. 14/14 completion: update 'git reset' new stage optionsFelipe Contreras, Oct 14, 2013
  2. 04/14 grep: add --staged optionFelipe Contreras, Oct 14, 2013
  3. 07/14 stash: add --stage to pop and applyFelipe Contreras, Oct 14, 2013
  4. 00/14 Officially start moving to the term 'staging area'Felipe Contreras, Oct 14, 2013
  5. Felipe ContrerasOct 14, 2013
  6. Junio C HamanoOct 17, 2013
  7. Felipe ContrerasOct 17, 2013
  8. Matthieu MoyOct 18, 2013
  9. John SzakmeisterOct 18, 2013
  10. Felipe ContrerasOct 18, 2013
  11. Max HornOct 18, 2013
  12. Karsten BleesOct 18, 2013
  13. Felipe ContrerasOct 19, 2013
  14. Philip OakleyOct 19, 2013
  15. Karsten BleesOct 24, 2013
  16. Andreas KreyOct 24, 2013
  17. Felipe ContrerasOct 24, 2013
  18. 10/14 apply: add --work, --no-work optionsFelipe Contreras, Oct 14, 2013
  19. 01/14 Add proper 'stage' commandFelipe Contreras, Oct 14, 2013
  20. Eric SunshineOct 14, 2013
  21. Felipe ContrerasOct 14, 2013
  22. 09/14 apply: add --stage optionFelipe Contreras, Oct 14, 2013
  23. 03/14 diff: document --stagedFelipe Contreras, Oct 14, 2013
  24. 05/14 rm: add --staged optionFelipe Contreras, Oct 14, 2013
  25. 02/14 stage: add edit commandFelipe Contreras, Oct 14, 2013
  26. 13/14 reset: allow --keep with --stageFelipe Contreras, Oct 14, 2013
  27. 12/14 reset: add --stage and --work optionsFelipe Contreras, Oct 14, 2013
  28. 08/14 submodule: add --staged optionsFelipe Contreras, Oct 14, 2013
  29. 11/14 completion: update --staged optionsFelipe Contreras, Oct 14, 2013
  30. 06/14 stash: add --stage option to saveFelipe Contreras, Oct 14, 2013

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.