After the last patch, "git status" now suggests - add to stage some changes - restore [--worktree] to undo worktree changes - restore --staged to undo index changes - rm --cached to remove files from the index This change is to make the suggestions for more consistent by using --staged across all suggested commands instead of the still-a-bit-hard-to-understand --cached. PS. Should we suggest "git stage" instead of "git add"? Maybe that's going too far? Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- Documentation/git-rm.txt | 7 ++++--- builtin/rm.c | 7 ++++--- t/t3600-rm.sh | 6 +++--- t/t7508-status.sh | 2 +- wt-status.c | 4 ++-- 5 files changed, 14 insertions(+), 12 deletions(-) diff --git a/Documentation/git-rm.txt b/Documentation/git-rm.txt index b5c46223c4..4271fc5eaa 100644 --- a/Documentation/git-rm.txt +++ b/Documentation/git-rm.txt @@ -8,7 +8,7 @@ git-rm - Remove files from the working tree and from the index SYNOPSIS -------- [verse] -'git rm' [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--] <file>... +'git rm' [-f | --force] [-n] [-r] [--staged] [--ignore-unmatch] [--quiet] [--] <file>... DESCRIPTION ----------- @@ -55,10 +55,11 @@ OPTIONS the list of files, (useful when filenames might be mistaken for command-line options). +--staged:: --cached:: Use this option to unstage and remove paths only from the index. - Working tree files, whether modified or not, will be - left alone. + Working tree files, whether modified or not, will be left + alone. `--cached` is synonym for `--staged`. --ignore-unmatch:: Exit with a zero status even if no files matched. diff --git a/builtin/rm.c b/builtin/rm.c index db85b33982..47c8eb100b 100644 --- a/builtin/rm.c +++ b/builtin/rm.c @@ -217,7 +217,7 @@ static int check_local_mod(struct object_id *head, int index_only) "staged in the index:", "the following files have changes " "staged in the index:", files_cached.nr), - _("\n(use --cached to keep the file," + _("\n(use --staged to keep the file," " or -f to force removal)"), &errs); string_list_clear(&files_cached, 0); @@ -226,7 +226,7 @@ static int check_local_mod(struct object_id *head, int index_only) Q_("the following file has local modifications:", "the following files have local modifications:", files_local.nr), - _("\n(use --cached to keep the file," + _("\n(use --staged to keep the file," " or -f to force removal)"), &errs); string_list_clear(&files_local, 0); @@ -240,7 +240,8 @@ static int ignore_unmatch = 0; static struct option builtin_rm_options[] = { OPT__DRY_RUN(&show_only, N_("dry run")), OPT__QUIET(&quiet, N_("do not list removed files")), - OPT_BOOL( 0 , "cached", &index_only, N_("only remove from the index")), + OPT_BOOL( 0 , "staged", &index_only, N_("only remove from the index")), + OPT_BOOL( 0 , "cached", &index_only, N_("synonym for --staged")), OPT__FORCE(&force, N_("override the up-to-date check"), PARSE_OPT_NOCOMPLETE), OPT_BOOL('r', NULL, &recursive, N_("allow recursive removal")), OPT_BOOL( 0 , "ignore-unmatch", &ignore_unmatch, diff --git a/t/t3600-rm.sh b/t/t3600-rm.sh index 04e5d42bd3..5686032b8c 100755 --- a/t/t3600-rm.sh +++ b/t/t3600-rm.sh @@ -797,7 +797,7 @@ test_expect_success 'rm file with local modification' ' cat >expect <<-\EOF && error: the following file has local modifications: foo.txt - (use --cached to keep the file, or -f to force removal) + (use --staged to keep the file, or -f to force removal) EOF git commit -m "testing rm 3" && echo content3 >foo.txt && @@ -819,7 +819,7 @@ test_expect_success 'rm file with changes in the index' ' cat >expect <<-\EOF && error: the following file has changes staged in the index: foo.txt - (use --cached to keep the file, or -f to force removal) + (use --staged to keep the file, or -f to force removal) EOF git reset --hard && echo content5 >foo.txt && @@ -845,7 +845,7 @@ test_expect_success 'rm files with two different errors' ' (use -f to force removal) error: the following file has changes staged in the index: bar1.txt - (use --cached to keep the file, or -f to force removal) + (use --staged to keep the file, or -f to force removal) EOF echo content >foo1.txt && git add foo1.txt && diff --git a/t/t7508-status.sh b/t/t7508-status.sh index 681bc314b4..738f3df2f9 100755 --- a/t/t7508-status.sh +++ b/t/t7508-status.sh @@ -71,7 +71,7 @@ test_expect_success 'setup' ' ' test_expect_success 'status (1)' ' - test_i18ngrep "use \"git rm --cached <file>\.\.\.\" to unstage" output + test_i18ngrep "use \"git rm --staged <file>\.\.\.\" to unstage" output ' strip_comments () { diff --git a/wt-status.c b/wt-status.c index 19fd1add75..4d065ce89e 100644 --- a/wt-status.c +++ b/wt-status.c @@ -187,7 +187,7 @@ static void wt_longstatus_print_unmerged_header(struct wt_status *s) _(" (use \"git restore --source=%s --staged <file>...\" to unstage)"), s->reference); } else - status_printf_ln(s, c, _(" (use \"git rm --cached <file>...\" to unstage)")); + status_printf_ln(s, c, _(" (use \"git rm --staged <file>...\" to unstage)")); if (!both_deleted) { if (!del_mod_conflict) @@ -220,7 +220,7 @@ static void wt_longstatus_print_cached_header(struct wt_status *s) _(" (use \"git restore --source=%s --staged <file>...\" to unstage)"), s->reference); } else - status_printf_ln(s, c, _(" (use \"git rm --cached <file>...\" to unstage)")); + status_printf_ln(s, c, _(" (use \"git rm --staged <file>...\" to unstage)")); status_printf_ln(s, c, "%s", ""); } -- 2.21.0.682.g30d2204636