git-clean.1 (6479B)
- '\" t
- .\" Title: git-clean
- .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
- .\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/>
- .\" Date: 2025-03-14
- .\" Manual: Git Manual
- .\" Source: Git 2.49.0
- .\" Language: English
- .\"
- .TH "GIT\-CLEAN" "1" "2025-03-14" "Git 2\&.49\&.0" "Git Manual"
- .\" -----------------------------------------------------------------
- .\" * Define some portability stuff
- .\" -----------------------------------------------------------------
- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- .\" http://bugs.debian.org/507673
- .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- .ie \n(.g .ds Aq \(aq
- .el .ds Aq '
- .\" -----------------------------------------------------------------
- .\" * set default formatting
- .\" -----------------------------------------------------------------
- .\" disable hyphenation
- .nh
- .\" disable justification (adjust text to left margin only)
- .ad l
- .\" -----------------------------------------------------------------
- .\" * MAIN CONTENT STARTS HERE *
- .\" -----------------------------------------------------------------
- .SH "NAME"
- git-clean \- Remove untracked files from the working tree
- .SH "SYNOPSIS"
- .sp
- .nf
- \fIgit clean\fR [\-d] [\-f] [\-i] [\-n] [\-q] [\-e <pattern>] [\-x | \-X] [\-\-] [<pathspec>\&...\:]
- .fi
- .SH "DESCRIPTION"
- .sp
- Cleans the working tree by recursively removing files that are not under version control, starting from the current directory\&.
- .sp
- 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\&.
- .sp
- If any optional \fI<pathspec>\fR\&.\&.\&. arguments are given, only those paths that match the pathspec are affected\&.
- .SH "OPTIONS"
- .PP
- \-d
- .RS 4
- 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
- \fB\-\-force\fR) will be removed\&.
- .RE
- .PP
- \-f, \-\-force
- .RS 4
- If the Git configuration variable clean\&.requireForce is not set to false,
- \fIgit clean\fR
- 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\&.
- .RE
- .PP
- \-i, \-\-interactive
- .RS 4
- Show what would be done and clean files interactively\&. See
- \(lqInteractive mode\(rq
- for details\&. Configuration variable
- \fBclean\&.requireForce\fR
- is ignored, as this mode gives its own safety protection by going interactive\&.
- .RE
- .PP
- \-n, \-\-dry\-run
- .RS 4
- Don\(cqt actually remove anything, just show what would be done\&. Configuration variable
- \fBclean\&.requireForce\fR
- is ignored, as nothing will be deleted anyway\&.
- .RE
- .PP
- \-q, \-\-quiet
- .RS 4
- Be quiet, only report errors, but not the files that are successfully removed\&.
- .RE
- .PP
- \-e <pattern>, \-\-exclude=<pattern>
- .RS 4
- Use the given exclude pattern in addition to the standard ignore rules (see
- \fBgitignore\fR(5))\&.
- .RE
- .PP
- \-x
- .RS 4
- Don\(cqt use the standard ignore rules (see
- \fBgitignore\fR(5)), but still use the ignore rules given with
- \fB\-e\fR
- options from the command line\&. This allows removing all untracked files, including build products\&. This can be used (possibly in conjunction with
- \fIgit restore\fR
- or
- \fIgit reset\fR) to create a pristine working directory to test a clean build\&.
- .RE
- .PP
- \-X
- .RS 4
- Remove only files ignored by Git\&. This may be useful to rebuild everything from scratch, but keep manually created files\&.
- .RE
- .SH "INTERACTIVE MODE"
- .sp
- When the command enters the interactive mode, it shows the files and directories to be cleaned, and goes into its interactive command loop\&.
- .sp
- 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:
- .sp
- .if n \{\
- .RS 4
- .\}
- .nf
- *** Commands ***
- 1: clean 2: filter by pattern 3: select by numbers
- 4: ask each 5: quit 6: help
- What now> 1
- .fi
- .if n \{\
- .RE
- .\}
- .sp
- You also could say \fBc\fR or \fBclean\fR above as long as the choice is unique\&.
- .sp
- The main command loop has 6 subcommands\&.
- .PP
- clean
- .RS 4
- Start cleaning files and directories, and then quit\&.
- .RE
- .PP
- filter by pattern
- .RS 4
- 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\&.
- .RE
- .PP
- select by numbers
- .RS 4
- This shows the files and directories to be deleted and issues an "Select items to delete>>" prompt\&. When the prompt ends with double
- \fI>>\fR
- 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
- \fI*\fR
- to choose everything\&. Also when you are satisfied with the filtered result, press ENTER (empty) back to the main menu\&.
- .RE
- .PP
- ask each
- .RS 4
- 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\&.
- .RE
- .PP
- quit
- .RS 4
- This lets you quit without doing any cleaning\&.
- .RE
- .PP
- help
- .RS 4
- Show brief usage of interactive git\-clean\&.
- .RE
- .SH "CONFIGURATION"
- .sp
- 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:
- .PP
- clean\&.requireForce
- .RS 4
- A boolean to make git\-clean refuse to delete files unless \-f is given\&. Defaults to true\&.
- .RE
- .SH "SEE ALSO"
- .sp
- \fBgitignore\fR(5)
- .SH "GIT"
- .sp
- Part of the \fBgit\fR(1) suite