Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
git_clean [2018/05/21 11:29] – [Basic options] rpjdaygit_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 of untracked files:+General usage for "cleaningyour working directory:
  
  
Line 8: Line 8:
 </code> </code>
  
-Config setting:+The single config setting for this command:
  
   * ''clean.requireForce''   * ''clean.requireForce''
  
-Prerequisites: ''gitignore''+Prerequisites: You should understand ''gitignore'' files.
  
 ===== DESCRIPTION ===== ===== DESCRIPTION =====
Line 27: Line 27:
 affected. affected.
 </code> </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 ===== ===== Basic options =====
Line 63: Line 65:
     repository, it is not removed by default. Use -f option twice     repository, it is not removed by default. Use -f option twice
     if you really want to remove such a directory.     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> </code>
  • git_clean.1526902158.txt.gz
  • Last modified: 2018/05/21 11:29
  • by rpjday