Autogenerated HTML docs for v1.5.5-67-g9a49
authorJunio C Hamano <junio@hera.kernel.org>
Thu, 17 Apr 2008 02:17:53 +0000 (02:17 +0000)
committerJunio C Hamano <junio@hera.kernel.org>
Thu, 17 Apr 2008 02:17:53 +0000 (02:17 +0000)
git-rm.html
git-rm.txt

index aaff2a6036ab1d17240436ef0b90e960e688ad70..6e9359e8a44f40a30841dd2332efca7887ef3b1a 100644 (file)
@@ -276,11 +276,16 @@ git-rm(1) Manual Page
 </div>\r
 <h2>DESCRIPTION</h2>\r
 <div class="sectionbody">\r
-<p>Remove files from the working tree and from the index.  The\r
-files have to be identical to the tip of the branch, and no\r
-updates to its contents must have been placed in the staging\r
-area (aka index).  When --cached is given, the staged content has to\r
-match either the tip of the branch <strong>or</strong> the file on disk.</p>\r
+<p>Remove files from the index, or from the working tree and the index.\r
+<tt>git rm</tt> will not remove a file from just your working directory.\r
+(There is no option to remove a file only from the work tree\r
+and yet keep it in the index; use <tt>/bin/rm</tt> if you want to do that.)\r
+The files being removed have to be identical to the tip of the branch,\r
+and no updates to their contents can be staged in the index,\r
+though that default behavior can be overridden with the <tt>-f</tt> option.\r
+When <em>--cached</em> is given, the staged content has to\r
+match either the tip of the branch or the file on disk,\r
+allowing the file to be removed from just the index.</p>\r
 </div>\r
 <h2>OPTIONS</h2>\r
 <div class="sectionbody">\r
@@ -291,10 +296,13 @@ match either the tip of the branch <strong>or</strong> the file on disk.</p>
 <dd>\r
 <p>\r
         Files to remove.  Fileglobs (e.g. <tt>*.c</tt>) can be given to\r
-        remove all matching files.  Also a leading directory name\r
-        (e.g. <tt>dir</tt> to add <tt>dir/file1</tt> and <tt>dir/file2</tt>) can be\r
-        given to remove all files in the directory, recursively,\r
-        but this requires <tt>-r</tt> option to be given for safety.\r
+        remove all matching files.  If you want git to expand\r
+        file glob characters, you may need to shell-escape them.\r
+        A leading directory name\r
+        (e.g. <tt>dir</tt> to remove <tt>dir/file1</tt> and <tt>dir/file2</tt>) can be\r
+        given to remove all files in the directory, and recursively\r
+        all sub-directories,\r
+        but this requires the <tt>-r</tt> option to be explicitly given.\r
 </p>\r
 </dd>\r
 <dt>\r
@@ -310,8 +318,9 @@ match either the tip of the branch <strong>or</strong> the file on disk.</p>
 </dt>\r
 <dd>\r
 <p>\r
-        Don't actually remove the file(s), just show if they exist in\r
-        the index.\r
+        Don't actually remove any file(s).  Instead, just show\r
+        if they exist in the index and would otherwise be removed\r
+        by the command.\r
 </p>\r
 </dd>\r
 <dt>\r
@@ -338,9 +347,9 @@ match either the tip of the branch <strong>or</strong> the file on disk.</p>
 </dt>\r
 <dd>\r
 <p>\r
-        This option can be used to tell the command to remove\r
-        the paths only from the index, leaving working tree\r
-        files.\r
+        Use this option to unstage and remove paths only from the index.\r
+        Working tree files, whether modified or not, will be\r
+        left alone.\r
 </p>\r
 </dd>\r
 <dt>\r
@@ -364,10 +373,14 @@ match either the tip of the branch <strong>or</strong> the file on disk.</p>
 </div>\r
 <h2>DISCUSSION</h2>\r
 <div class="sectionbody">\r
-<p>The list of &lt;file&gt; given to the command can be exact pathnames,\r
-file glob patterns, or leading directory name.  The command\r
-removes only the paths that is known to git.  Giving the name of\r
+<p>The &lt;file&gt; list given to the command can be exact pathnames,\r
+file glob patterns, or leading directory names.  The command\r
+removes only the paths that are known to git.  Giving the name of\r
 a file that you have not told git about does not remove that file.</p>\r
+<p>File globbing matches across directory boundaries.  Thus, given\r
+two directories <tt>d</tt> and <tt>d2</tt>, there is a difference between\r
+using <tt>git rm 'd*'</tt> and <tt>git rm 'd/*'</tt>, as the former will\r
+also remove all of directory <tt>d2</tt>.</p>\r
 </div>\r
 <h2>EXAMPLES</h2>\r
 <div class="sectionbody">\r
@@ -381,15 +394,14 @@ git-rm Documentation/\*.txt
         <tt>Documentation</tt> directory and any of its subdirectories.\r
 </p>\r
 <p>Note that the asterisk <tt>*</tt> is quoted from the shell in this\r
-example; this lets the command include the files from\r
-subdirectories of <tt>Documentation/</tt> directory.</p>\r
+example; this lets git, and not the shell, expand the pathnames\r
+of files and subdirectories under the <tt>Documentation/</tt> directory.</p>\r
 </dd>\r
 <dt>\r
 git-rm -f git-*.sh\r
 </dt>\r
 <dd>\r
 <p>\r
-        Remove all git-*.sh scripts that are in the index.\r
         Because this example lets the shell expand the asterisk\r
         (i.e. you are listing the files explicitly), it\r
         does not remove <tt>subdir/git-foo.sh</tt>.\r
@@ -415,7 +427,7 @@ git-rm -f git-*.sh
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 07-Jan-2008 07:50:46 UTC\r
+Last updated 17-Apr-2008 02:17:31 UTC\r
 </div>\r
 </div>\r
 </body>\r
index dc36c662ae0d60b7dc706fce67a7c81849caace6..9c81b72dbebfec9b77128fb58d5aab33a143d594 100644 (file)
@@ -11,28 +11,37 @@ SYNOPSIS
 
 DESCRIPTION
 -----------
-Remove files from the working tree and from the index.  The
-files have to be identical to the tip of the branch, and no
-updates to its contents must have been placed in the staging
-area (aka index).  When --cached is given, the staged content has to
-match either the tip of the branch *or* the file on disk.
+Remove files from the index, or from the working tree and the index.
+`git rm` will not remove a file from just your working directory.
+(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.
 
 
 OPTIONS
 -------
 <file>...::
        Files to remove.  Fileglobs (e.g. `*.c`) can be given to
-       remove all matching files.  Also a leading directory name
-       (e.g. `dir` to add `dir/file1` and `dir/file2`) can be
-       given to remove all files in the directory, recursively,
-       but this requires `-r` option to be given for safety.
+       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.
 
 -f::
        Override the up-to-date check.
 
 -n, \--dry-run::
-        Don't actually remove the file(s), just show if they exist in
-        the index.
+       Don't actually remove any file(s).  Instead, just show
+       if they exist in the index and would otherwise be removed
+       by the command.
 
 -r::
         Allow recursive removal when a leading directory name is
@@ -44,9 +53,9 @@ OPTIONS
        for command-line options).
 
 \--cached::
-       This option can be used to tell the command to remove
-       the paths only from the index, leaving working tree
-       files.
+       Use this option to unstage and remove paths only from the index.
+       Working tree files, whether modified or not, will be
+       left alone.
 
 \--ignore-unmatch::
        Exit with a zero status even if no files matched.
@@ -59,11 +68,15 @@ OPTIONS
 DISCUSSION
 ----------
 
-The list of <file> given to the command can be exact pathnames,
-file glob patterns, or leading directory name.  The command
-removes only the paths that is known to git.  Giving the name of
+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
 a file that you have not told git about does not remove that file.
 
+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`.
 
 EXAMPLES
 --------
@@ -72,11 +85,10 @@ git-rm Documentation/\\*.txt::
        `Documentation` directory and any of its subdirectories.
 +
 Note that the asterisk `\*` is quoted from the shell in this
-example; this lets the command include the files from
-subdirectories of `Documentation/` directory.
+example; this lets git, and not the shell, expand the pathnames
+of files and subdirectories under the `Documentation/` directory.
 
 git-rm -f git-*.sh::
-       Remove all git-*.sh scripts that are in the index.
        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`.