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

[PATCH 3/7] stage: add 'add' subcommand

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
Aug 11, 2021, 04:57 UTC
Message-ID
<20210811045727.2381-4-felipe.contreras@gmail.com>
In-Reply-To
<20210811045727.2381-1-felipe.contreras@gmail.com>
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 Documentation/git-stage.txt            | 15 ++++++++++++---
 builtin/stage.c                        |  4 ++++
 contrib/completion/git-completion.bash |  5 +++++
 t/t3710-stage.sh                       |  6 ++++++
 4 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/Documentation/git-stage.txt b/Documentation/git-stage.txt
index 3f7b036901..348d7d1d92 100644
--- a/Documentation/git-stage.txt
+++ b/Documentation/git-stage.txt
@@ -3,21 +3,30 @@ git-stage(1)
 
 NAME
 ----
-git-stage - Add file contents to the staging area
+git-stage - Manage the staging area
 
 
 SYNOPSIS
 --------
 [verse]
 'git stage' [options] [--] [<paths>...]
+'git stage' (-a | --add) [options] [--] [<paths>...]
 
 
 DESCRIPTION
 -----------
 
-The staging area is a location where changes are stored in preparation for a commit.
+This command is useful to manage the staging area which is a location where
+changes are stored in preparation for a commit.
+
+Without arguments it's a synonym for linkgit:git-add[1].
+
+OPTIONS
+-------
+-a::
+--add::
+	Add changes to the staging area. See linkgit:git-add[1].
 
-This is a synonym for linkgit:git-add[1].
 
 SEE ALSO
 --------
diff --git a/builtin/stage.c b/builtin/stage.c
index 49016b0d5f..5a80bbc76c 100644
--- a/builtin/stage.c
+++ b/builtin/stage.c
@@ -8,6 +8,7 @@
 
 static const char *const stage_usage[] = {
 	N_("git stage [options] [--] <paths>..."),
+	N_("git stage --add [options] [--] <paths>..."),
 	NULL
 };
 
@@ -34,7 +35,10 @@ static int rerun(int argc, const char **argv, ...)
 
 int cmd_stage(int argc, const char **argv, const char *prefix)
 {
+	int add = 0;
+
 	struct option options[] = {
+		OPT_BOOL_F('a', "add", &add, N_("add changes"), PARSE_OPT_NONEG),
 		OPT_END()
 	};
 
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index b50c5d0ea3..8656c47f39 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -2376,6 +2376,11 @@ _git_send_email ()
 
 _git_stage ()
 {
+	if [[ "$cur" == --* ]]; then
+		__gitcomp_builtin stage
+		return
+	fi
+
 	_git_add
 }
 
diff --git a/t/t3710-stage.sh b/t/t3710-stage.sh
index 2bf59905ca..225c6dd739 100755
--- a/t/t3710-stage.sh
+++ b/t/t3710-stage.sh
@@ -17,4 +17,10 @@ test_expect_success 'basic' '
 	in_stage foo
 '
 
+test_expect_success 'add' '
+	touch bar &&
+	git stage --add bar &&
+	in_stage bar
+'
+
 test_done
-- 
2.32.0.48.g096519100f
Previous: Felipe ContrerasNext: Felipe Contreras
Message 4 of 24 in “[un]stage: officially start moving to "staging area"”
  1. 0/7 [un]stage: officially start moving to "staging area"Felipe Contreras, Aug 11, 2021
  2. 1/7 stage: add proper 'stage' commandFelipe Contreras, Aug 11, 2021
  3. 2/7 stage: add helper to run commandsFelipe Contreras, Aug 11, 2021
  4. 3/7 stage: add 'add' subcommandFelipe Contreras, Aug 11, 2021
  5. 4/7 stage: add 'remove' subcommandFelipe Contreras, Aug 11, 2021
  6. 5/7 unstage: add 'unstage' commandFelipe Contreras, Aug 11, 2021
  7. 6/7 stage: add 'diff' subcommandFelipe Contreras, Aug 11, 2021
  8. Bagas SanjayaAug 11, 2021
  9. Felipe ContrerasAug 11, 2021
  10. Junio C HamanoAug 11, 2021
  11. Felipe ContrerasAug 11, 2021
  12. Jeff KingAug 11, 2021
  13. Felipe ContrerasAug 11, 2021
  14. Jeff KingAug 11, 2021
  15. Felipe ContrerasAug 11, 2021
  16. Michael J GruberAug 11, 2021
  17. Jeff KingAug 11, 2021
  18. Michael J GruberAug 11, 2021
  19. Jeff KingAug 11, 2021
  20. Junio C HamanoAug 11, 2021
  21. Felipe ContrerasAug 11, 2021
  22. 7/7 stage: add 'edit' commandFelipe Contreras, Aug 11, 2021
  23. Michael J GruberAug 11, 2021
  24. Felipe ContrerasAug 11, 2021

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.