'\" t .\" Title: git-clean .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 11/27/2023 .\" Manual: Git Manual .\" Source: Git 2.43.0 .\" Language: English .\" .TH "GIT\-CLEAN" "1" "11/27/2023" "Git 2\&.43\&.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 ] [\-x | \-X] [\-\-] [\&...] .fi .sp .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 \fB\&.\&.\&.\fR arguments are given, only those paths that match the pathspec are affected\&. .SH "OPTIONS" .PP \-d .RS 4 Normally, when no 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 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 or \-i\&. 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\&. .RE .PP \-n, \-\-dry\-run .RS 4 Don\(cqt actually remove anything, just show what would be done\&. .RE .PP \-q, \-\-quiet .RS 4 Be quiet, only report errors, but not the files that are successfully removed\&. .RE .PP \-e , \-\-exclude= .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 .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 do nothing unless given \-f, \-i, or \-n\&. Defaults to true\&. .RE .SH "SEE ALSO" .sp \fBgitignore\fR(5) .SH "GIT" .sp Part of the \fBgit\fR(1) suite