Autogenerated manpages for v2.45.0-rc0-3-g00e10e
[git-manpages.git] / man1 / git-clean.1
blob22336abeadb59b8d523bf68dd1a45bf040b297df
1 '\" t
2 .\"     Title: git-clean
3 .\"    Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
4 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
5 .\"      Date: 2024-04-22
6 .\"    Manual: Git Manual
7 .\"    Source: Git 2.45.0.rc0.3.g00e10ef10e
8 .\"  Language: English
9 .\"
10 .TH "GIT\-CLEAN" "1" "2024\-04\-22" "Git 2\&.45\&.0\&.rc0\&.3\&.g00" "Git Manual"
11 .\" -----------------------------------------------------------------
12 .\" * Define some portability stuff
13 .\" -----------------------------------------------------------------
14 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15 .\" http://bugs.debian.org/507673
16 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
17 .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18 .ie \n(.g .ds Aq \(aq
19 .el       .ds Aq '
20 .\" -----------------------------------------------------------------
21 .\" * set default formatting
22 .\" -----------------------------------------------------------------
23 .\" disable hyphenation
24 .nh
25 .\" disable justification (adjust text to left margin only)
26 .ad l
27 .\" -----------------------------------------------------------------
28 .\" * MAIN CONTENT STARTS HERE *
29 .\" -----------------------------------------------------------------
30 .SH "NAME"
31 git-clean \- Remove untracked files from the working tree
32 .SH "SYNOPSIS"
33 .sp
34 .nf
35 \fIgit clean\fR [\-d] [\-f] [\-i] [\-n] [\-q] [\-e <pattern>] [\-x | \-X] [\-\-] [<pathspec>\&...]
36 .fi
37 .sp
38 .SH "DESCRIPTION"
39 .sp
40 Cleans the working tree by recursively removing files that are not under version control, starting from the current directory\&.
41 .sp
42 Normally, only files unknown to Git are removed, but if the \fB\-x\fR option is specified, ignored files are also removed\&. This can, for example, be useful to remove all build products\&.
43 .sp
44 If any optional \fB<pathspec>\&.\&.\&.\fR arguments are given, only those paths that match the pathspec are affected\&.
45 .SH "OPTIONS"
46 .PP
47 \-d
48 .RS 4
49 Normally, when no <pathspec> is specified, git clean will not recurse into untracked directories to avoid removing too much\&. Specify \-d to have it recurse into such directories as well\&. If a <pathspec> is specified, \-d is irrelevant; all untracked files matching the specified paths (with exceptions for nested git directories mentioned under
50 \fB\-\-force\fR) will be removed\&.
51 .RE
52 .PP
53 \-f, \-\-force
54 .RS 4
55 If the Git configuration variable clean\&.requireForce is not set to false,
56 \fIgit clean\fR
57 will refuse to delete files or directories unless given \-f\&. Git will refuse to modify untracked nested git repositories (directories with a \&.git subdirectory) unless a second \-f is given\&.
58 .RE
59 .PP
60 \-i, \-\-interactive
61 .RS 4
62 Show what would be done and clean files interactively\&. See \(lqInteractive mode\(rq for details\&. Configuration variable
63 \fBclean\&.requireForce\fR
64 is ignored, as this mode gives its own safety protection by going interactive\&.
65 .RE
66 .PP
67 \-n, \-\-dry\-run
68 .RS 4
69 Don\(cqt actually remove anything, just show what would be done\&. Configuration variable
70 \fBclean\&.requireForce\fR
71 is ignored, as nothing will be deleted anyway\&.
72 .RE
73 .PP
74 \-q, \-\-quiet
75 .RS 4
76 Be quiet, only report errors, but not the files that are successfully removed\&.
77 .RE
78 .PP
79 \-e <pattern>, \-\-exclude=<pattern>
80 .RS 4
81 Use the given exclude pattern in addition to the standard ignore rules (see
82 \fBgitignore\fR(5))\&.
83 .RE
84 .PP
85 \-x
86 .RS 4
87 Don\(cqt use the standard ignore rules (see
88 \fBgitignore\fR(5)), but still use the ignore rules given with
89 \fB\-e\fR
90 options from the command line\&. This allows removing all untracked files, including build products\&. This can be used (possibly in conjunction with
91 \fIgit restore\fR
93 \fIgit reset\fR) to create a pristine working directory to test a clean build\&.
94 .RE
95 .PP
96 \-X
97 .RS 4
98 Remove only files ignored by Git\&. This may be useful to rebuild everything from scratch, but keep manually created files\&.
99 .RE
100 .SH "INTERACTIVE MODE"
102 When the command enters the interactive mode, it shows the files and directories to be cleaned, and goes into its interactive command loop\&.
104 The command loop shows the list of subcommands available, and gives a prompt "What now> "\&. In general, when the prompt ends with a single \fI>\fR, you can pick only one of the choices given and type return, like this:
106 .if n \{\
107 .RS 4
110     *** Commands ***
111         1: clean                2: filter by pattern    3: select by numbers
112         4: ask each             5: quit                 6: help
113     What now> 1
115 .if n \{\
120 You also could say \fBc\fR or \fBclean\fR above as long as the choice is unique\&.
122 The main command loop has 6 subcommands\&.
124 clean
125 .RS 4
126 Start cleaning files and directories, and then quit\&.
129 filter by pattern
130 .RS 4
131 This shows the files and directories to be deleted and issues an "Input ignore patterns>>" prompt\&. You can input space\-separated patterns to exclude files and directories from deletion\&. E\&.g\&. "*\&.c *\&.h" will exclude files ending with "\&.c" and "\&.h" from deletion\&. When you are satisfied with the filtered result, press ENTER (empty) back to the main menu\&.
134 select by numbers
135 .RS 4
136 This shows the files and directories to be deleted and issues an "Select items to delete>>" prompt\&. When the prompt ends with double
137 \fI>>\fR
138 like this, you can make more than one selection, concatenated with whitespace or comma\&. Also you can say ranges\&. E\&.g\&. "2\-5 7,9" to choose 2,3,4,5,7,9 from the list\&. If the second number in a range is omitted, all remaining items are selected\&. E\&.g\&. "7\-" to choose 7,8,9 from the list\&. You can say
139 \fI*\fR
140 to choose everything\&. Also when you are satisfied with the filtered result, press ENTER (empty) back to the main menu\&.
143 ask each
144 .RS 4
145 This will start to clean, and you must confirm one by one in order to delete items\&. Please note that this action is not as efficient as the above two actions\&.
148 quit
149 .RS 4
150 This lets you quit without doing any cleaning\&.
153 help
154 .RS 4
155 Show brief usage of interactive git\-clean\&.
157 .SH "CONFIGURATION"
159 Everything below this line in this section is selectively included from the \fBgit-config\fR(1) documentation\&. The content is the same as what\(cqs found there:
161 clean\&.requireForce
162 .RS 4
163 A boolean to make git\-clean refuse to delete files unless \-f is given\&. Defaults to true\&.
165 .SH "SEE ALSO"
167 \fBgitignore\fR(5)
168 .SH "GIT"
170 Part of the \fBgit\fR(1) suite