archive: handle commits with an empty tree
[git/jnareb-git.git] / Documentation / git-clean.txt
blob9f42c0d0e63e8d23bfbf4b582a6a9a60280cca47
1 git-clean(1)
2 ============
4 NAME
5 ----
6 git-clean - Remove untracked files from the working tree
8 SYNOPSIS
9 --------
10 [verse]
11 'git clean' [-d] [-f] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path>...
13 DESCRIPTION
14 -----------
16 Cleans the working tree by recursively removing files that are not
17 under version control, starting from the current directory.
19 Normally, only files unknown to git are removed, but if the '-x'
20 option is specified, ignored files are also removed. This can, for
21 example, be useful to remove all build products.
23 If any optional `<path>...` arguments are given, only those paths
24 are affected.
26 OPTIONS
27 -------
28 -d::
29         Remove untracked directories in addition to untracked files.
30         If an untracked directory is managed by a different git
31         repository, it is not removed by default.  Use -f option twice
32         if you really want to remove such a directory.
34 -f::
35 --force::
36         If the git configuration variable clean.requireForce is not set
37         to false, 'git clean' will refuse to run unless given -f or -n.
39 -n::
40 --dry-run::
41         Don't actually remove anything, just show what would be done.
43 -q::
44 --quiet::
45         Be quiet, only report errors, but not the files that are
46         successfully removed.
48 -e <pattern>::
49 --exclude=<pattern>::
50         In addition to those found in .gitignore (per directory) and
51         $GIT_DIR/info/exclude, also consider these patterns to be in the
52         set of the ignore rules in effect.
54 -x::
55         Don't use the standard ignore rules read from .gitignore (per
56         directory) and $GIT_DIR/info/exclude, but do still use the ignore
57         rules given with `-e` options.  This allows removing all untracked
58         files, including build products.  This can be used (possibly in
59         conjunction with 'git reset') to create a pristine
60         working directory to test a clean build.
62 -X::
63         Remove only files ignored by git.  This may be useful to rebuild
64         everything from scratch, but keep manually created files.
66 SEE ALSO
67 --------
68 linkgit:gitignore[5]
70 GIT
71 ---
72 Part of the linkgit:git[1] suite