Merge branch 'jc/clean-exclude-doc'

* jc/clean-exclude-doc:
  Documentation: clarify "git clean -e <pattern>"
This commit is contained in:
Junio C Hamano 2011-09-02 13:17:46 -07:00
commit b9a77eeda1
2 changed files with 9 additions and 6 deletions

View File

@ -47,12 +47,14 @@ OPTIONS
-e <pattern>::
--exclude=<pattern>::
Specify special exceptions to not be cleaned. Each <pattern> is
the same form as in $GIT_DIR/info/excludes and this option can be
given multiple times.
In addition to those found in .gitignore (per directory) and
$GIT_DIR/info/exclude, also consider these patterns to be in the
set of the ignore rules in effect.
-x::
Don't use the ignore rules. This allows removing all untracked
Don't use the standard ignore rules read from .gitignore (per
directory) and $GIT_DIR/info/exclude, but do still use the ignore
rules given with `-e` options. This allows removing all untracked
files, including build products. This can be used (possibly in
conjunction with 'git reset') to create a pristine
working directory to test a clean build.

View File

@ -54,7 +54,7 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
OPT_BOOLEAN('d', NULL, &remove_directories,
"remove whole directories"),
{ OPTION_CALLBACK, 'e', "exclude", &exclude_list, "pattern",
"exclude <pattern>", PARSE_OPT_NONEG, exclude_cb },
"add <pattern> to ignore rules", PARSE_OPT_NONEG, exclude_cb },
OPT_BOOLEAN('x', NULL, &ignored, "remove ignored files, too"),
OPT_BOOLEAN('X', NULL, &ignored_only,
"remove only ignored files"),
@ -98,7 +98,8 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
setup_standard_excludes(&dir);
for (i = 0; i < exclude_list.nr; i++)
add_exclude(exclude_list.items[i].string, "", 0, dir.exclude_list);
add_exclude(exclude_list.items[i].string, "", 0,
&dir.exclude_list[EXC_CMDL]);
pathspec = get_pathspec(prefix, argv);