Documentation / git-rm.txton commit Fix per-directory exclude handing for "git add" (41a7aa5)
   1git-rm(1)
   2=========
   3
   4NAME
   5----
   6git-rm - Remove files from the working tree and from the index
   7
   8SYNOPSIS
   9--------
  10'git-rm' [-f] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--] <file>...
  11
  12DESCRIPTION
  13-----------
  14Remove files from the working tree and from the index.  The
  15files have to be identical to the tip of the branch, and no
  16updates to its contents must have been placed in the staging
  17area (aka index).  When --cached is given, the staged content has to
  18match either the tip of the branch *or* the file on disk.
  19
  20
  21OPTIONS
  22-------
  23<file>...::
  24        Files to remove.  Fileglobs (e.g. `*.c`) can be given to
  25        remove all matching files.  Also a leading directory name
  26        (e.g. `dir` to add `dir/file1` and `dir/file2`) can be
  27        given to remove all files in the directory, recursively,
  28        but this requires `-r` option to be given for safety.
  29
  30-f::
  31        Override the up-to-date check.
  32
  33-n, \--dry-run::
  34        Don't actually remove the file(s), just show if they exist in
  35        the index.
  36
  37-r::
  38        Allow recursive removal when a leading directory name is
  39        given.
  40
  41\--::
  42        This option can be used to separate command-line options from
  43        the list of files, (useful when filenames might be mistaken
  44        for command-line options).
  45
  46\--cached::
  47        This option can be used to tell the command to remove
  48        the paths only from the index, leaving working tree
  49        files.
  50
  51\--ignore-unmatch::
  52        Exit with a zero status even if no files matched.
  53
  54-q, \--quiet::
  55        git-rm normally outputs one line (in the form of an "rm" command)
  56        for each file removed. This option suppresses that output.
  57
  58
  59DISCUSSION
  60----------
  61
  62The list of <file> given to the command can be exact pathnames,
  63file glob patterns, or leading directory name.  The command
  64removes only the paths that is known to git.  Giving the name of
  65a file that you have not told git about does not remove that file.
  66
  67
  68EXAMPLES
  69--------
  70git-rm Documentation/\\*.txt::
  71        Removes all `\*.txt` files from the index that are under the
  72        `Documentation` directory and any of its subdirectories.
  73+
  74Note that the asterisk `\*` is quoted from the shell in this
  75example; this lets the command include the files from
  76subdirectories of `Documentation/` directory.
  77
  78git-rm -f git-*.sh::
  79        Remove all git-*.sh scripts that are in the index.
  80        Because this example lets the shell expand the asterisk
  81        (i.e. you are listing the files explicitly), it
  82        does not remove `subdir/git-foo.sh`.
  83
  84See Also
  85--------
  86gitlink:git-add[1]
  87
  88Author
  89------
  90Written by Linus Torvalds <torvalds@osdl.org>
  91
  92Documentation
  93--------------
  94Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
  95
  96GIT
  97---
  98Part of the gitlink:git[7] suite