path: root/Documentation/git-rm.txt
diff options
authorCarl Worth <>2006-02-21 23:04:51 (GMT)
committerJunio C Hamano <>2006-02-23 01:10:42 (GMT)
commitd4a1cab541be0c276b38285c8b33050ea411eacf (patch)
treefa392a19be606f1f90e0792d8407df3a4bf09969 /Documentation/git-rm.txt
parent2cf3be1d31b322cf45640f3019a32d19a8a9b6f8 (diff)
Add new git-rm command with documentation
This adds a git-rm command which provides convenience similar to git-add, (and a bit more since it takes care of the rm as well if given -f). Like git-add, git-rm expands the given path names through git-ls-files. This means it only acts on files listed in the index. And it does act recursively on directories by default, (no -r needed as in the case of rm itself). When it recurses, it does not remove empty directories that are left behind. Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'Documentation/git-rm.txt')
1 files changed, 89 insertions, 0 deletions
diff --git a/Documentation/git-rm.txt b/Documentation/git-rm.txt
new file mode 100644
index 0000000..401bfb2
--- /dev/null
+++ b/Documentation/git-rm.txt
@@ -0,0 +1,89 @@
+git-rm - Remove files from the working tree and from the index.
+'git-rm' [-f] [-n] [-v] [--] <file>...
+A convenience wrapper for git-update-index --remove. For those coming
+from cvs, git-rm provides an operation similar to "cvs rm" or "cvs
+ Files to remove from the index and optionally, from the
+ working tree as well.
+ Remove files from the working tree as well as from the index.
+ Don't actually remove the file(s), just show if they exist in
+ the index.
+ 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).
+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.
+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/`.
+Written by Linus Torvalds <>
+Documentation by Junio C Hamano and the git-list <>.
+Part of the gitlink:git[7] suite