mirror of
https://github.com/git/git
synced 2024-08-25 10:45:59 +00:00
![Junio C Hamano](/assets/img/avatar_default.png)
The current explanation of -e can be misread as allowing the user to say I know 'git clean -XYZ' (substitute -XYZ with any option and/or parameter) will remove paths A, B, and C, and I want them all removed except for paths matching this pattern by adding '-e C' to the same command line, i.e. 'git clean -e C -XYZ'. But that is not what this option does. It augments the set of ignore rules from the command line, just like the same "-e <pattern>" argument does with the "ls-files" command (the user could probably pass "-e \!C" to tell the command to clean everything the command would normally remove, except for C). Also error out when both -x and -e are given with an explanation of what -e means---it is a symptom of misunderstanding what -e does. It also fixes small style nit in the parameter to add_exclude() call. The current code only works because EXC_CMDL happens to be defined as 0. Signed-off-by: Junio C Hamano <gitster@pobox.com>
69 lines
1.9 KiB
Plaintext
69 lines
1.9 KiB
Plaintext
git-clean(1)
|
|
============
|
|
|
|
NAME
|
|
----
|
|
git-clean - Remove untracked files from the working tree
|
|
|
|
SYNOPSIS
|
|
--------
|
|
[verse]
|
|
'git clean' [-d] [-f] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path>...
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
|
|
Cleans the working tree by recursively removing files that are not
|
|
under version control, starting from the current directory.
|
|
|
|
Normally, only files unknown to git are removed, but if the '-x'
|
|
option is specified, ignored files are also removed. This can, for
|
|
example, be useful to remove all build products.
|
|
|
|
If any optional `<path>...` arguments are given, only those paths
|
|
are affected.
|
|
|
|
OPTIONS
|
|
-------
|
|
-d::
|
|
Remove untracked directories in addition to untracked files.
|
|
If an untracked directory is managed by a different git
|
|
repository, it is not removed by default. Use -f option twice
|
|
if you really want to remove such a directory.
|
|
|
|
-f::
|
|
--force::
|
|
If the git configuration variable clean.requireForce is not set
|
|
to false, 'git clean' will refuse to run unless given -f or -n.
|
|
|
|
-n::
|
|
--dry-run::
|
|
Don't actually remove anything, just show what would be done.
|
|
|
|
-q::
|
|
--quiet::
|
|
Be quiet, only report errors, but not the files that are
|
|
successfully removed.
|
|
|
|
-e <pattern>::
|
|
--exclude=<pattern>::
|
|
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 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.
|
|
|
|
-X::
|
|
Remove only files ignored by git. This may be useful to rebuild
|
|
everything from scratch, but keep manually created files.
|
|
|
|
GIT
|
|
---
|
|
Part of the linkgit:git[1] suite
|