2006-02-22 00:04:51 +01:00
|
|
|
git-rm(1)
|
|
|
|
=========
|
|
|
|
|
|
|
|
NAME
|
|
|
|
----
|
2006-03-09 17:24:50 +01:00
|
|
|
git-rm - Remove files from the working tree and from the index
|
2006-02-22 00:04:51 +01:00
|
|
|
|
|
|
|
SYNOPSIS
|
|
|
|
--------
|
2008-06-30 08:09:04 +02:00
|
|
|
'git rm' [-f] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--] <file>...
|
2006-02-22 00:04:51 +01:00
|
|
|
|
|
|
|
DESCRIPTION
|
|
|
|
-----------
|
2008-04-17 01:41:27 +02:00
|
|
|
Remove files from the index, or from the working tree and the index.
|
2008-06-30 08:09:04 +02:00
|
|
|
`git-rm` will not remove a file from just your working directory.
|
2008-04-17 01:41:27 +02:00
|
|
|
(There is no option to remove a file only from the work tree
|
|
|
|
and yet keep it in the index; use `/bin/rm` if you want to do that.)
|
|
|
|
The files being removed have to be identical to the tip of the branch,
|
|
|
|
and no updates to their contents can be staged in the index,
|
|
|
|
though that default behavior can be overridden with the `-f` option.
|
|
|
|
When '--cached' is given, the staged content has to
|
|
|
|
match either the tip of the branch or the file on disk,
|
|
|
|
allowing the file to be removed from just the index.
|
2006-02-22 00:04:51 +01:00
|
|
|
|
|
|
|
|
|
|
|
OPTIONS
|
|
|
|
-------
|
|
|
|
<file>...::
|
2006-12-25 12:23:45 +01:00
|
|
|
Files to remove. Fileglobs (e.g. `*.c`) can be given to
|
2008-04-17 01:41:27 +02:00
|
|
|
remove all matching files. If you want git to expand
|
|
|
|
file glob characters, you may need to shell-escape them.
|
|
|
|
A leading directory name
|
|
|
|
(e.g. `dir` to remove `dir/file1` and `dir/file2`) can be
|
|
|
|
given to remove all files in the directory, and recursively
|
|
|
|
all sub-directories,
|
|
|
|
but this requires the `-r` option to be explicitly given.
|
2006-02-22 00:04:51 +01:00
|
|
|
|
|
|
|
-f::
|
2006-12-25 12:23:45 +01:00
|
|
|
Override the up-to-date check.
|
2006-02-22 00:04:51 +01:00
|
|
|
|
2008-06-08 03:36:09 +02:00
|
|
|
-n::
|
|
|
|
--dry-run::
|
2008-04-17 01:41:27 +02:00
|
|
|
Don't actually remove any file(s). Instead, just show
|
|
|
|
if they exist in the index and would otherwise be removed
|
|
|
|
by the command.
|
2006-02-22 00:04:51 +01:00
|
|
|
|
2006-12-25 12:23:45 +01:00
|
|
|
-r::
|
|
|
|
Allow recursive removal when a leading directory name is
|
|
|
|
given.
|
2006-02-22 00:04:51 +01:00
|
|
|
|
2006-05-05 21:05:24 +02:00
|
|
|
\--::
|
2006-02-22 00:04:51 +01:00
|
|
|
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).
|
|
|
|
|
2008-06-08 03:36:09 +02:00
|
|
|
--cached::
|
2008-04-17 01:41:27 +02:00
|
|
|
Use this option to unstage and remove paths only from the index.
|
|
|
|
Working tree files, whether modified or not, will be
|
|
|
|
left alone.
|
2006-12-25 12:23:45 +01:00
|
|
|
|
2008-06-08 03:36:09 +02:00
|
|
|
--ignore-unmatch::
|
2007-04-16 09:53:24 +02:00
|
|
|
Exit with a zero status even if no files matched.
|
|
|
|
|
2008-06-08 03:36:09 +02:00
|
|
|
-q::
|
|
|
|
--quiet::
|
2007-04-16 09:46:48 +02:00
|
|
|
git-rm normally outputs one line (in the form of an "rm" command)
|
|
|
|
for each file removed. This option suppresses that output.
|
|
|
|
|
2006-02-22 00:04:51 +01:00
|
|
|
|
|
|
|
DISCUSSION
|
|
|
|
----------
|
|
|
|
|
2008-04-17 01:41:27 +02:00
|
|
|
The <file> list given to the command can be exact pathnames,
|
|
|
|
file glob patterns, or leading directory names. The command
|
|
|
|
removes only the paths that are known to git. Giving the name of
|
2006-12-25 12:23:45 +01:00
|
|
|
a file that you have not told git about does not remove that file.
|
2006-02-22 00:04:51 +01:00
|
|
|
|
2008-04-17 01:41:27 +02:00
|
|
|
File globbing matches across directory boundaries. Thus, given
|
|
|
|
two directories `d` and `d2`, there is a difference between
|
|
|
|
using `git rm \'d\*\'` and `git rm \'d/\*\'`, as the former will
|
|
|
|
also remove all of directory `d2`.
|
2006-02-22 00:04:51 +01:00
|
|
|
|
|
|
|
EXAMPLES
|
|
|
|
--------
|
2008-06-30 08:09:04 +02:00
|
|
|
git rm Documentation/\\*.txt::
|
2006-02-22 00:04:51 +01:00
|
|
|
Removes all `\*.txt` files from the index that are under the
|
2007-01-16 20:50:29 +01:00
|
|
|
`Documentation` directory and any of its subdirectories.
|
2006-02-22 00:04:51 +01:00
|
|
|
+
|
|
|
|
Note that the asterisk `\*` is quoted from the shell in this
|
2008-04-17 01:41:27 +02:00
|
|
|
example; this lets git, and not the shell, expand the pathnames
|
|
|
|
of files and subdirectories under the `Documentation/` directory.
|
2006-02-22 00:04:51 +01:00
|
|
|
|
2008-06-30 08:09:04 +02:00
|
|
|
git rm -f git-*.sh::
|
2007-01-16 20:50:29 +01:00
|
|
|
Because this example lets the shell expand the asterisk
|
|
|
|
(i.e. you are listing the files explicitly), it
|
2006-12-25 12:23:45 +01:00
|
|
|
does not remove `subdir/git-foo.sh`.
|
2006-02-22 00:04:51 +01:00
|
|
|
|
2008-05-29 01:55:27 +02:00
|
|
|
SEE ALSO
|
2006-03-05 22:18:19 +01:00
|
|
|
--------
|
2007-12-29 07:20:38 +01:00
|
|
|
linkgit:git-add[1]
|
2006-02-22 00:04:51 +01:00
|
|
|
|
|
|
|
Author
|
|
|
|
------
|
|
|
|
Written by Linus Torvalds <torvalds@osdl.org>
|
|
|
|
|
|
|
|
Documentation
|
|
|
|
--------------
|
|
|
|
Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
|
|
|
|
|
|
|
|
GIT
|
|
|
|
---
|
2008-06-06 09:07:32 +02:00
|
|
|
Part of the linkgit:git[1] suite
|