Pete Wyckoff <pw@xxxxxxxx> writes: >> diff --git a/Documentation/git-clean.txt b/Documentation/git-clean.txt >> index 974e04e..a7a18e3 100644 >> --- a/Documentation/git-clean.txt >> +++ b/Documentation/git-clean.txt >> @@ -47,9 +47,9 @@ 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 what are 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 >> diff --git a/builtin/clean.c b/builtin/clean.c >> index 75697f7..3782718 100644 >> --- a/builtin/clean.c >> +++ b/builtin/clean.c >> @@ -76,6 +76,8 @@ int cmd_clean(int argc, const char **argv, const char *prefix) >> >> if (ignored && ignored_only) >> die(_("-x and -X cannot be used together")); >> + if (ignored && exclude_list.nr) >> + die(_("adding exclude with -e and ignoring it with -x is crazy")); > > This breaks one of my use cases for git clean. The description of '-x' needs to be also updated to reflect what it does. How about this on top? Documentation/git-clean.txt | 4 +++- builtin/clean.c | 2 -- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/git-clean.txt b/Documentation/git-clean.txt index b49674f..79fb984 100644 --- a/Documentation/git-clean.txt +++ b/Documentation/git-clean.txt @@ -52,7 +52,9 @@ OPTIONS 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. diff --git a/builtin/clean.c b/builtin/clean.c index 7fcbf87..0c7b3d0 100644 --- a/builtin/clean.c +++ b/builtin/clean.c @@ -76,8 +76,6 @@ int cmd_clean(int argc, const char **argv, const char *prefix) if (ignored && ignored_only) die(_("-x and -X cannot be used together")); - if (ignored && exclude_list.nr) - die(_("adding exclude with -e and ignoring it with -x is crazy")); if (!show_only && !force) { if (config_set) -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html