When optional paths arguments are given, git-clean passes them to underlying git-ls-files; with this, you can say: git clean 'temp-*' to clean only the garbage files whose names begin with 'temp-'. Signed-off-by: Junio C Hamano <junkio@xxxxxxx> --- * I usually do not use clean myself, so I am not sure if this is the kind of thing people who do use 'clean' regularly would generally want, hence this RFC. Documentation/git-clean.txt | 5 ++++- git-clean.sh | 13 +++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Documentation/git-clean.txt b/Documentation/git-clean.txt index 36890c5..b95545f 100644 --- a/Documentation/git-clean.txt +++ b/Documentation/git-clean.txt @@ -8,7 +8,7 @@ git-clean - Remove untracked files from SYNOPSIS -------- [verse] -'git-clean' [-d] [-n] [-q] [-x | -X] +'git-clean' [-d] [-n] [-q] [-x | -X] <paths>... DESCRIPTION ----------- @@ -16,6 +16,9 @@ Removes files unknown to git. This allo from files that are not under version control. If the '-x' option is specified, ignored files are also removed, allowing to remove all build products. +When optional `<paths>...` arguments are given, the paths +affected are further limited to those that match them. + OPTIONS ------- diff --git a/git-clean.sh b/git-clean.sh index b200868..6c818f4 100755 --- a/git-clean.sh +++ b/git-clean.sh @@ -3,13 +3,15 @@ # # Copyright (c) 2005-2006 Pavel Roskin # -USAGE="[-d] [-n] [-q] [-x | -X]" +USAGE="[-d] [-n] [-q] [-x | -X] <paths>..." LONG_USAGE='Clean untracked files from the working directory -d remove directories as well -n don'\''t remove anything, just show what would be done -q be quiet, only report errors -x remove ignored files as well - -X remove only ignored files as well' + -X remove only ignored files as well +When optional <paths>... arguments are given, the paths +affected are further limited to those that match them.' SUBDIRECTORY_OK=Yes . git-sh-setup @@ -44,8 +46,11 @@ do -X) ignoredonly=1 ;; - *) + -*) usage + ;; + *) + break esac shift done @@ -64,7 +69,7 @@ if [ -z "$ignored" ]; then fi fi -git-ls-files --others --directory $excl ${excl_info:+"$excl_info"} | +git-ls-files --others --directory $excl ${excl_info:+"$excl_info"} "$@" | while read -r file; do if [ -d "$file" -a ! -L "$file" ]; then if [ -z "$cleandir" ]; then -- 1.3.2.gb012 - : 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