git-rm(1)
=========

NAME
----
git-rm - Remove files from the working tree and from the index

SYNOPSIS
--------
'git-rm' [-f] [-n] [-v] [--] <file>...

DESCRIPTION
-----------
A convenience wrapper for git-update-index --remove. For those coming
from cvs, git-rm provides an operation similar to "cvs rm" or "cvs
remove".


OPTIONS
-------
<file>...::
	Files to remove from the index and optionally, from the
	working tree as well.

-f::
	Remove files from the working tree as well as from the index.

-n::
        Don't actually remove the file(s), just show if they exist in
        the index.

-v::
        Be verbose.

--::
	This option can be used to separate command-line options from
	the list of files, (useful when filenames might be mistaken
	for command-line options).


DISCUSSION
----------

The list of <file> given to the command is fed to `git-ls-files`
command to list files that are registered in the index and
are not ignored/excluded by `$GIT_DIR/info/exclude` file or
`.gitignore` file in each directory.  This means two things:

. You can put the name of a directory on the command line, and the
  command will remove all files in it and its subdirectories (the
  directories themselves are never removed from the working tree);

. Giving the name of a file that is not in the index does not
  remove that file.


EXAMPLES
--------
git-rm Documentation/\\*.txt::

	Removes all `\*.txt` files from the index that are under the
	`Documentation` directory and any of its subdirectories. The
	files are not removed from the working tree.
+
Note that the asterisk `\*` is quoted from the shell in this
example; this lets the command include the files from
subdirectories of `Documentation/` directory.

git-rm -f git-*.sh::

	Remove all git-*.sh scripts that are in the index. The files
	are removed from the index, and (because of the -f option),
	from the working tree as well. Because this example lets the
	shell expand the asterisk (i.e. you are listing the files
	explicitly), it does not remove `subdir/git-foo.sh`.

See Also
--------
gitlink:git-add[1]

Author
------
Written by Linus Torvalds <torvalds@osdl.org>

Documentation
--------------
Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.

GIT
---
Part of the gitlink:git[7] suite

