Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ===== Overview ===== General usage for "cleaning" your working directory: <code> $ git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path>... </code> The single config setting for this command: * ''clean.requireForce'' Prerequisites: You should understand ''gitignore'' files. ===== DESCRIPTION ===== <code> 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. </code> Note how both ignored files and new, //staged// files are not cleaned by default. Currently, there is some dissension regarding what is meant by files "known to Git." ===== Basic options ===== General execution options: <code> -i, --interactive Show what would be done and clean files interactively. -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. </code> Forcing the issue: <code> -f, --force If the Git configuration variable clean.requireForce is not set to false, git clean will refuse to delete files or directories unless given -f, -n or -i. Git will refuse to delete directories with .git sub directory or file unless a second -f is given. </code> Removing directories as well: <code> -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. </code> ===== Overriding standard ignore rules ===== The explanation below oddly does not mention the use of the configuration setting ''core.excludesFile''. <code> -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. </code> ===== Getting a "pristine" working tree ===== Create a shell alias: <code> alias gpristine='git reset --hard && git clean -dfx' </code> git_clean.txt Last modified: 2019/02/28 15:25by rpjday