Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| git_clean [2018/05/21 11:10] – rpjday | git_clean [2019/02/28 15:25] (current) – [Overriding standard ignore rules] rpjday | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ===== Overview ===== | ===== Overview ===== | ||
| - | General usage for cleaning your working directory | + | General usage for "cleaning" |
| Line 8: | Line 8: | ||
| </ | </ | ||
| - | Config | + | The single config |
| * '' | * '' | ||
| + | |||
| + | Prerequisites: | ||
| + | |||
| + | ===== DESCRIPTION ===== | ||
| + | |||
| + | < | ||
| + | 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 < | ||
| + | affected. | ||
| + | </ | ||
| + | |||
| + | 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: | ||
| + | |||
| + | < | ||
| + | -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. | ||
| + | </ | ||
| + | |||
| + | Forcing the issue: | ||
| + | |||
| + | < | ||
| + | -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. | ||
| + | </ | ||
| + | |||
| + | Removing directories as well: | ||
| + | |||
| + | < | ||
| + | -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. | ||
| + | </ | ||
| + | |||
| + | ===== Overriding standard ignore rules ===== | ||
| + | |||
| + | The explanation below oddly does not mention the use of the configuration setting '' | ||
| + | |||
| + | < | ||
| + | -e < | ||
| + | In addition to those found in .gitignore (per directory) and | ||
| + | $GIT_DIR/ | ||
| + | the set of the ignore rules in effect. | ||
| + | |||
| + | -x | ||
| + | Don’t use the standard ignore rules read from .gitignore | ||
| + | (per directory) and $GIT_DIR/ | ||
| + | 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. | ||
| + | </ | ||
| + | |||
| + | ===== Getting a " | ||
| + | |||
| + | Create a shell alias: | ||
| + | |||
| + | < | ||
| + | alias gpristine=' | ||
| + | </ | ||