Autogenerated HTML docs for v1.7.2.3-392-g02377
[git/jnareb-git.git] / git-rm.html
blob97bbf8a00a1acd50964035230ef95152f4415ddf
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6 <meta name="generator" content="AsciiDoc 8.2.5" />
7 <style type="text/css">
8 /* Debug borders */
9 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
11 border: 1px solid red;
15 body {
16 margin: 1em 5% 1em 5%;
19 a {
20 color: blue;
21 text-decoration: underline;
23 a:visited {
24 color: fuchsia;
27 em {
28 font-style: italic;
31 strong {
32 font-weight: bold;
35 tt {
36 color: navy;
39 h1, h2, h3, h4, h5, h6 {
40 color: #527bbd;
41 font-family: sans-serif;
42 margin-top: 1.2em;
43 margin-bottom: 0.5em;
44 line-height: 1.3;
47 h1, h2, h3 {
48 border-bottom: 2px solid silver;
50 h2 {
51 padding-top: 0.5em;
53 h3 {
54 float: left;
56 h3 + * {
57 clear: left;
60 div.sectionbody {
61 font-family: serif;
62 margin-left: 0;
65 hr {
66 border: 1px solid silver;
69 p {
70 margin-top: 0.5em;
71 margin-bottom: 0.5em;
74 pre {
75 padding: 0;
76 margin: 0;
79 span#author {
80 color: #527bbd;
81 font-family: sans-serif;
82 font-weight: bold;
83 font-size: 1.1em;
85 span#email {
87 span#revision {
88 font-family: sans-serif;
91 div#footer {
92 font-family: sans-serif;
93 font-size: small;
94 border-top: 2px solid silver;
95 padding-top: 0.5em;
96 margin-top: 4.0em;
98 div#footer-text {
99 float: left;
100 padding-bottom: 0.5em;
102 div#footer-badges {
103 float: right;
104 padding-bottom: 0.5em;
107 div#preamble,
108 div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
109 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
110 div.admonitionblock {
111 margin-right: 10%;
112 margin-top: 1.5em;
113 margin-bottom: 1.5em;
115 div.admonitionblock {
116 margin-top: 2.5em;
117 margin-bottom: 2.5em;
120 div.content { /* Block element content. */
121 padding: 0;
124 /* Block element titles. */
125 div.title, caption.title {
126 font-family: sans-serif;
127 font-weight: bold;
128 text-align: left;
129 margin-top: 1.0em;
130 margin-bottom: 0.5em;
132 div.title + * {
133 margin-top: 0;
136 td div.title:first-child {
137 margin-top: 0.0em;
139 div.content div.title:first-child {
140 margin-top: 0.0em;
142 div.content + div.title {
143 margin-top: 0.0em;
146 div.sidebarblock > div.content {
147 background: #ffffee;
148 border: 1px solid silver;
149 padding: 0.5em;
152 div.listingblock {
153 margin-right: 0%;
155 div.listingblock > div.content {
156 border: 1px solid silver;
157 background: #f4f4f4;
158 padding: 0.5em;
161 div.quoteblock > div.content {
162 padding-left: 2.0em;
165 div.attribution {
166 text-align: right;
168 div.verseblock + div.attribution {
169 text-align: left;
172 div.admonitionblock .icon {
173 vertical-align: top;
174 font-size: 1.1em;
175 font-weight: bold;
176 text-decoration: underline;
177 color: #527bbd;
178 padding-right: 0.5em;
180 div.admonitionblock td.content {
181 padding-left: 0.5em;
182 border-left: 2px solid silver;
185 div.exampleblock > div.content {
186 border-left: 2px solid silver;
187 padding: 0.5em;
190 div.verseblock div.content {
191 white-space: pre;
194 div.imageblock div.content { padding-left: 0; }
195 div.imageblock img { border: 1px solid silver; }
196 span.image img { border-style: none; }
198 dl {
199 margin-top: 0.8em;
200 margin-bottom: 0.8em;
202 dt {
203 margin-top: 0.5em;
204 margin-bottom: 0;
205 font-style: italic;
207 dd > *:first-child {
208 margin-top: 0;
211 ul, ol {
212 list-style-position: outside;
214 div.olist2 ol {
215 list-style-type: lower-alpha;
218 div.tableblock > table {
219 border: 3px solid #527bbd;
221 thead {
222 font-family: sans-serif;
223 font-weight: bold;
225 tfoot {
226 font-weight: bold;
229 div.hlist {
230 margin-top: 0.8em;
231 margin-bottom: 0.8em;
233 div.hlist td {
234 padding-bottom: 5px;
236 td.hlist1 {
237 vertical-align: top;
238 font-style: italic;
239 padding-right: 0.8em;
241 td.hlist2 {
242 vertical-align: top;
245 @media print {
246 div#footer-badges { display: none; }
249 div#toctitle {
250 color: #527bbd;
251 font-family: sans-serif;
252 font-size: 1.1em;
253 font-weight: bold;
254 margin-top: 1.0em;
255 margin-bottom: 0.1em;
258 div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
259 margin-top: 0;
260 margin-bottom: 0;
262 div.toclevel2 {
263 margin-left: 2em;
264 font-size: 0.9em;
266 div.toclevel3 {
267 margin-left: 4em;
268 font-size: 0.9em;
270 div.toclevel4 {
271 margin-left: 6em;
272 font-size: 0.9em;
274 include1::./stylesheets/xhtml11-manpage.css[]
275 /* Workarounds for IE6's broken and incomplete CSS2. */
277 div.sidebar-content {
278 background: #ffffee;
279 border: 1px solid silver;
280 padding: 0.5em;
282 div.sidebar-title, div.image-title {
283 font-family: sans-serif;
284 font-weight: bold;
285 margin-top: 0.0em;
286 margin-bottom: 0.5em;
289 div.listingblock div.content {
290 border: 1px solid silver;
291 background: #f4f4f4;
292 padding: 0.5em;
295 div.quoteblock-content {
296 padding-left: 2.0em;
299 div.exampleblock-content {
300 border-left: 2px solid silver;
301 padding-left: 0.5em;
304 /* IE6 sets dynamically generated links as visited. */
305 div#toc a:visited { color: blue; }
306 </style>
307 <title>git-rm(1)</title>
308 </head>
309 <body>
310 <div id="header">
311 <h1>
312 git-rm(1) Manual Page
313 </h1>
314 <h2>NAME</h2>
315 <div class="sectionbody">
316 <p>git-rm -
317 Remove files from the working tree and from the index
318 </p>
319 </div>
320 </div>
321 <h2>SYNOPSIS</h2>
322 <div class="sectionbody">
323 <div class="para"><p><em>git rm</em> [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--] &lt;file&gt;&#8230;</p></div>
324 </div>
325 <h2 id="_description">DESCRIPTION</h2>
326 <div class="sectionbody">
327 <div class="para"><p>Remove files from the index, or from the working tree and the index.
328 <tt>git rm</tt> will not remove a file from just your working directory.
329 (There is no option to remove a file only from the working tree
330 and yet keep it in the index; use <tt>/bin/rm</tt> if you want to do that.)
331 The files being removed have to be identical to the tip of the branch,
332 and no updates to their contents can be staged in the index,
333 though that default behavior can be overridden with the <tt>-f</tt> option.
334 When <tt>--cached</tt> is given, the staged content has to
335 match either the tip of the branch or the file on disk,
336 allowing the file to be removed from just the index.</p></div>
337 </div>
338 <h2 id="_options">OPTIONS</h2>
339 <div class="sectionbody">
340 <div class="vlist"><dl>
341 <dt>
342 &lt;file&gt;&#8230;
343 </dt>
344 <dd>
346 Files to remove. Fileglobs (e.g. <tt>*.c</tt>) can be given to
347 remove all matching files. If you want git to expand
348 file glob characters, you may need to shell-escape them.
349 A leading directory name
350 (e.g. <tt>dir</tt> to remove <tt>dir/file1</tt> and <tt>dir/file2</tt>) can be
351 given to remove all files in the directory, and recursively
352 all sub-directories,
353 but this requires the <tt>-r</tt> option to be explicitly given.
354 </p>
355 </dd>
356 <dt>
358 </dt>
359 <dt>
360 --force
361 </dt>
362 <dd>
364 Override the up-to-date check.
365 </p>
366 </dd>
367 <dt>
369 </dt>
370 <dt>
371 --dry-run
372 </dt>
373 <dd>
375 Don't actually remove any file(s). Instead, just show
376 if they exist in the index and would otherwise be removed
377 by the command.
378 </p>
379 </dd>
380 <dt>
382 </dt>
383 <dd>
385 Allow recursive removal when a leading directory name is
386 given.
387 </p>
388 </dd>
389 <dt>
391 </dt>
392 <dd>
394 This option can be used to separate command-line options from
395 the list of files, (useful when filenames might be mistaken
396 for command-line options).
397 </p>
398 </dd>
399 <dt>
400 --cached
401 </dt>
402 <dd>
404 Use this option to unstage and remove paths only from the index.
405 Working tree files, whether modified or not, will be
406 left alone.
407 </p>
408 </dd>
409 <dt>
410 --ignore-unmatch
411 </dt>
412 <dd>
414 Exit with a zero status even if no files matched.
415 </p>
416 </dd>
417 <dt>
419 </dt>
420 <dt>
421 --quiet
422 </dt>
423 <dd>
425 <tt>git rm</tt> normally outputs one line (in the form of an <tt>rm</tt> command)
426 for each file removed. This option suppresses that output.
427 </p>
428 </dd>
429 </dl></div>
430 </div>
431 <h2 id="_discussion">DISCUSSION</h2>
432 <div class="sectionbody">
433 <div class="para"><p>The &lt;file&gt; list given to the command can be exact pathnames,
434 file glob patterns, or leading directory names. The command
435 removes only the paths that are known to git. Giving the name of
436 a file that you have not told git about does not remove that file.</p></div>
437 <div class="para"><p>File globbing matches across directory boundaries. Thus, given
438 two directories <tt>d</tt> and <tt>d2</tt>, there is a difference between
439 using <tt>git rm &#39;d&#42;&#39;</tt> and
440 <tt>git rm &#39;d/&#42;&#39;</tt>, as the former will
441 also remove all of directory <tt>d2</tt>.</p></div>
442 </div>
443 <h2 id="_removing_files_that_have_disappeared_from_the_filesystem">REMOVING FILES THAT HAVE DISAPPEARED FROM THE FILESYSTEM</h2>
444 <div class="sectionbody">
445 <div class="para"><p>There is no option for <tt>git rm</tt> to remove from the index only
446 the paths that have disappeared from the filesystem. However,
447 depending on the use case, there are several ways that can be
448 done.</p></div>
449 <h3 id="_using_git_commit_a">Using "git commit -a"</h3><div style="clear:left"></div>
450 <div class="para"><p>If you intend that your next commit should record all modifications
451 of tracked files in the working tree and record all removals of
452 files that have been removed from the working tree with <tt>rm</tt>
453 (as opposed to <tt>git rm</tt>), use <tt>git commit -a</tt>, as it will
454 automatically notice and record all removals. You can also have a
455 similar effect without committing by using <tt>git add -u</tt>.</p></div>
456 <h3 id="_using_git_add_a">Using "git add -A"</h3><div style="clear:left"></div>
457 <div class="para"><p>When accepting a new code drop for a vendor branch, you probably
458 want to record both the removal of paths and additions of new paths
459 as well as modifications of existing paths.</p></div>
460 <div class="para"><p>Typically you would first remove all tracked files from the working
461 tree using this command:</p></div>
462 <div class="listingblock">
463 <div class="content">
464 <pre><tt>git ls-files -z | xargs -0 rm -f</tt></pre>
465 </div></div>
466 <div class="para"><p>and then "untar" the new code in the working tree. Alternately
467 you could "rsync" the changes into the working tree.</p></div>
468 <div class="para"><p>After that, the easiest way to record all removals, additions, and
469 modifications in the working tree is:</p></div>
470 <div class="listingblock">
471 <div class="content">
472 <pre><tt>git add -A</tt></pre>
473 </div></div>
474 <div class="para"><p>See <a href="git-add.html">git-add(1)</a>.</p></div>
475 <h3 id="_other_ways">Other ways</h3><div style="clear:left"></div>
476 <div class="para"><p>If all you really want to do is to remove from the index the files
477 that are no longer present in the working tree (perhaps because
478 your working tree is dirty so that you cannot use <tt>git commit -a</tt>),
479 use the following command:</p></div>
480 <div class="listingblock">
481 <div class="content">
482 <pre><tt>git diff --name-only --diff-filter=D -z | xargs -0 git rm --cached</tt></pre>
483 </div></div>
484 </div>
485 <h2 id="_examples">EXAMPLES</h2>
486 <div class="sectionbody">
487 <div class="vlist"><dl>
488 <dt>
489 git rm Documentation/*.txt
490 </dt>
491 <dd>
493 Removes all <tt>*.txt</tt> files from the index that are under the
494 <tt>Documentation</tt> directory and any of its subdirectories.
495 </p>
496 <div class="para"><p>Note that the asterisk <tt>*</tt> is quoted from the shell in this
497 example; this lets git, and not the shell, expand the pathnames
498 of files and subdirectories under the <tt>Documentation/</tt> directory.</p></div>
499 </dd>
500 <dt>
501 git rm -f git-*.sh
502 </dt>
503 <dd>
505 Because this example lets the shell expand the asterisk
506 (i.e. you are listing the files explicitly), it
507 does not remove <tt>subdir/git-foo.sh</tt>.
508 </p>
509 </dd>
510 </dl></div>
511 </div>
512 <h2 id="_see_also">SEE ALSO</h2>
513 <div class="sectionbody">
514 <div class="para"><p><a href="git-add.html">git-add(1)</a></p></div>
515 </div>
516 <h2 id="_author">Author</h2>
517 <div class="sectionbody">
518 <div class="para"><p>Written by Linus Torvalds &lt;torvalds@osdl.org&gt;</p></div>
519 </div>
520 <h2 id="_documentation">Documentation</h2>
521 <div class="sectionbody">
522 <div class="para"><p>Documentation by Junio C Hamano and the git-list &lt;git@vger.kernel.org&gt;.</p></div>
523 </div>
524 <h2 id="_git">GIT</h2>
525 <div class="sectionbody">
526 <div class="para"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
527 </div>
528 <div id="footer">
529 <div id="footer-text">
530 Last updated 2010-09-03 21:30:30 UTC
531 </div>
532 </div>
533 </body>
534 </html>