Autogenerated HTML docs for v1.7.7-237-g34c44
[git/jnareb-git.git] / git-add.html
blob89da6237575d3eaa9f4d9a54d701fdc925e81b8d
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.5.2" />
7 <title>git-add(1)</title>
8 <style type="text/css">
9 /* Debug borders */
10 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
12 border: 1px solid red;
16 body {
17 margin: 1em 5% 1em 5%;
20 a {
21 color: blue;
22 text-decoration: underline;
24 a:visited {
25 color: fuchsia;
28 em {
29 font-style: italic;
30 color: navy;
33 strong {
34 font-weight: bold;
35 color: #083194;
38 tt {
39 color: navy;
42 h1, h2, h3, h4, h5, h6 {
43 color: #527bbd;
44 font-family: sans-serif;
45 margin-top: 1.2em;
46 margin-bottom: 0.5em;
47 line-height: 1.3;
50 h1, h2, h3 {
51 border-bottom: 2px solid silver;
53 h2 {
54 padding-top: 0.5em;
56 h3 {
57 float: left;
59 h3 + * {
60 clear: left;
63 div.sectionbody {
64 font-family: serif;
65 margin-left: 0;
68 hr {
69 border: 1px solid silver;
72 p {
73 margin-top: 0.5em;
74 margin-bottom: 0.5em;
77 ul, ol, li > p {
78 margin-top: 0;
81 pre {
82 padding: 0;
83 margin: 0;
86 span#author {
87 color: #527bbd;
88 font-family: sans-serif;
89 font-weight: bold;
90 font-size: 1.1em;
92 span#email {
94 span#revnumber, span#revdate, span#revremark {
95 font-family: sans-serif;
98 div#footer {
99 font-family: sans-serif;
100 font-size: small;
101 border-top: 2px solid silver;
102 padding-top: 0.5em;
103 margin-top: 4.0em;
105 div#footer-text {
106 float: left;
107 padding-bottom: 0.5em;
109 div#footer-badges {
110 float: right;
111 padding-bottom: 0.5em;
114 div#preamble {
115 margin-top: 1.5em;
116 margin-bottom: 1.5em;
118 div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
119 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
120 div.admonitionblock {
121 margin-top: 1.0em;
122 margin-bottom: 1.5em;
124 div.admonitionblock {
125 margin-top: 2.0em;
126 margin-bottom: 2.0em;
127 margin-right: 10%;
128 color: #606060;
131 div.content { /* Block element content. */
132 padding: 0;
135 /* Block element titles. */
136 div.title, caption.title {
137 color: #527bbd;
138 font-family: sans-serif;
139 font-weight: bold;
140 text-align: left;
141 margin-top: 1.0em;
142 margin-bottom: 0.5em;
144 div.title + * {
145 margin-top: 0;
148 td div.title:first-child {
149 margin-top: 0.0em;
151 div.content div.title:first-child {
152 margin-top: 0.0em;
154 div.content + div.title {
155 margin-top: 0.0em;
158 div.sidebarblock > div.content {
159 background: #ffffee;
160 border: 1px solid silver;
161 padding: 0.5em;
164 div.listingblock > div.content {
165 border: 1px solid silver;
166 background: #f4f4f4;
167 padding: 0.5em;
170 div.quoteblock, div.verseblock {
171 padding-left: 1.0em;
172 margin-left: 1.0em;
173 margin-right: 10%;
174 border-left: 5px solid #dddddd;
175 color: #777777;
178 div.quoteblock > div.attribution {
179 padding-top: 0.5em;
180 text-align: right;
183 div.verseblock > div.content {
184 white-space: pre;
186 div.verseblock > div.attribution {
187 padding-top: 0.75em;
188 text-align: left;
190 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */
191 div.verseblock + div.attribution {
192 text-align: left;
195 div.admonitionblock .icon {
196 vertical-align: top;
197 font-size: 1.1em;
198 font-weight: bold;
199 text-decoration: underline;
200 color: #527bbd;
201 padding-right: 0.5em;
203 div.admonitionblock td.content {
204 padding-left: 0.5em;
205 border-left: 3px solid #dddddd;
208 div.exampleblock > div.content {
209 border-left: 3px solid #dddddd;
210 padding-left: 0.5em;
213 div.imageblock div.content { padding-left: 0; }
214 span.image img { border-style: none; }
215 a.image:visited { color: white; }
217 dl {
218 margin-top: 0.8em;
219 margin-bottom: 0.8em;
221 dt {
222 margin-top: 0.5em;
223 margin-bottom: 0;
224 font-style: normal;
225 color: navy;
227 dd > *:first-child {
228 margin-top: 0.1em;
231 ul, ol {
232 list-style-position: outside;
234 ol.arabic {
235 list-style-type: decimal;
237 ol.loweralpha {
238 list-style-type: lower-alpha;
240 ol.upperalpha {
241 list-style-type: upper-alpha;
243 ol.lowerroman {
244 list-style-type: lower-roman;
246 ol.upperroman {
247 list-style-type: upper-roman;
250 div.compact ul, div.compact ol,
251 div.compact p, div.compact p,
252 div.compact div, div.compact div {
253 margin-top: 0.1em;
254 margin-bottom: 0.1em;
257 div.tableblock > table {
258 border: 3px solid #527bbd;
260 thead, p.table.header {
261 font-family: sans-serif;
262 font-weight: bold;
264 tfoot {
265 font-weight: bold;
267 td > div.verse {
268 white-space: pre;
270 p.table {
271 margin-top: 0;
273 /* Because the table frame attribute is overriden by CSS in most browsers. */
274 div.tableblock > table[frame="void"] {
275 border-style: none;
277 div.tableblock > table[frame="hsides"] {
278 border-left-style: none;
279 border-right-style: none;
281 div.tableblock > table[frame="vsides"] {
282 border-top-style: none;
283 border-bottom-style: none;
287 div.hdlist {
288 margin-top: 0.8em;
289 margin-bottom: 0.8em;
291 div.hdlist tr {
292 padding-bottom: 15px;
294 dt.hdlist1.strong, td.hdlist1.strong {
295 font-weight: bold;
297 td.hdlist1 {
298 vertical-align: top;
299 font-style: normal;
300 padding-right: 0.8em;
301 color: navy;
303 td.hdlist2 {
304 vertical-align: top;
306 div.hdlist.compact tr {
307 margin: 0;
308 padding-bottom: 0;
311 .comment {
312 background: yellow;
315 .footnote, .footnoteref {
316 font-size: 0.8em;
319 span.footnote, span.footnoteref {
320 vertical-align: super;
323 #footnotes {
324 margin: 20px 0 20px 0;
325 padding: 7px 0 0 0;
328 #footnotes div.footnote {
329 margin: 0 0 5px 0;
332 #footnotes hr {
333 border: none;
334 border-top: 1px solid silver;
335 height: 1px;
336 text-align: left;
337 margin-left: 0;
338 width: 20%;
339 min-width: 100px;
343 @media print {
344 div#footer-badges { display: none; }
347 div#toc {
348 margin-bottom: 2.5em;
351 div#toctitle {
352 color: #527bbd;
353 font-family: sans-serif;
354 font-size: 1.1em;
355 font-weight: bold;
356 margin-top: 1.0em;
357 margin-bottom: 0.1em;
360 div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
361 margin-top: 0;
362 margin-bottom: 0;
364 div.toclevel2 {
365 margin-left: 2em;
366 font-size: 0.9em;
368 div.toclevel3 {
369 margin-left: 4em;
370 font-size: 0.9em;
372 div.toclevel4 {
373 margin-left: 6em;
374 font-size: 0.9em;
376 /* Overrides for manpage documents */
377 h1 {
378 padding-top: 0.5em;
379 padding-bottom: 0.5em;
380 border-top: 2px solid silver;
381 border-bottom: 2px solid silver;
383 h2 {
384 border-style: none;
386 div.sectionbody {
387 margin-left: 5%;
390 @media print {
391 div#toc { display: none; }
394 /* Workarounds for IE6's broken and incomplete CSS2. */
396 div.sidebar-content {
397 background: #ffffee;
398 border: 1px solid silver;
399 padding: 0.5em;
401 div.sidebar-title, div.image-title {
402 color: #527bbd;
403 font-family: sans-serif;
404 font-weight: bold;
405 margin-top: 0.0em;
406 margin-bottom: 0.5em;
409 div.listingblock div.content {
410 border: 1px solid silver;
411 background: #f4f4f4;
412 padding: 0.5em;
415 div.quoteblock-attribution {
416 padding-top: 0.5em;
417 text-align: right;
420 div.verseblock-content {
421 white-space: pre;
423 div.verseblock-attribution {
424 padding-top: 0.75em;
425 text-align: left;
428 div.exampleblock-content {
429 border-left: 3px solid #dddddd;
430 padding-left: 0.5em;
433 /* IE6 sets dynamically generated links as visited. */
434 div#toc a:visited { color: blue; }
435 </style>
436 <script type="text/javascript">
437 /*<![CDATA[*/
438 window.onload = function(){asciidoc.footnotes();}
439 var asciidoc = { // Namespace.
441 /////////////////////////////////////////////////////////////////////
442 // Table Of Contents generator
443 /////////////////////////////////////////////////////////////////////
445 /* Author: Mihai Bazon, September 2002
446 * http://students.infoiasi.ro/~mishoo
448 * Table Of Content generator
449 * Version: 0.4
451 * Feel free to use this script under the terms of the GNU General Public
452 * License, as long as you do not remove or alter this notice.
455 /* modified by Troy D. Hanson, September 2006. License: GPL */
456 /* modified by Stuart Rackham, 2006, 2009. License: GPL */
458 // toclevels = 1..4.
459 toc: function (toclevels) {
461 function getText(el) {
462 var text = "";
463 for (var i = el.firstChild; i != null; i = i.nextSibling) {
464 if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
465 text += i.data;
466 else if (i.firstChild != null)
467 text += getText(i);
469 return text;
472 function TocEntry(el, text, toclevel) {
473 this.element = el;
474 this.text = text;
475 this.toclevel = toclevel;
478 function tocEntries(el, toclevels) {
479 var result = new Array;
480 var re = new RegExp('[hH]([2-'+(toclevels+1)+'])');
481 // Function that scans the DOM tree for header elements (the DOM2
482 // nodeIterator API would be a better technique but not supported by all
483 // browsers).
484 var iterate = function (el) {
485 for (var i = el.firstChild; i != null; i = i.nextSibling) {
486 if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
487 var mo = re.exec(i.tagName);
488 if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
489 result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
491 iterate(i);
495 iterate(el);
496 return result;
499 var toc = document.getElementById("toc");
500 var entries = tocEntries(document.getElementById("content"), toclevels);
501 for (var i = 0; i < entries.length; ++i) {
502 var entry = entries[i];
503 if (entry.element.id == "")
504 entry.element.id = "_toc_" + i;
505 var a = document.createElement("a");
506 a.href = "#" + entry.element.id;
507 a.appendChild(document.createTextNode(entry.text));
508 var div = document.createElement("div");
509 div.appendChild(a);
510 div.className = "toclevel" + entry.toclevel;
511 toc.appendChild(div);
513 if (entries.length == 0)
514 toc.parentNode.removeChild(toc);
518 /////////////////////////////////////////////////////////////////////
519 // Footnotes generator
520 /////////////////////////////////////////////////////////////////////
522 /* Based on footnote generation code from:
523 * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
526 footnotes: function () {
527 var cont = document.getElementById("content");
528 var noteholder = document.getElementById("footnotes");
529 var spans = cont.getElementsByTagName("span");
530 var refs = {};
531 var n = 0;
532 for (i=0; i<spans.length; i++) {
533 if (spans[i].className == "footnote") {
534 n++;
535 // Use [\s\S] in place of . so multi-line matches work.
536 // Because JavaScript has no s (dotall) regex flag.
537 note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
538 noteholder.innerHTML +=
539 "<div class='footnote' id='_footnote_" + n + "'>" +
540 "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
541 n + "</a>. " + note + "</div>";
542 spans[i].innerHTML =
543 "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
544 "' title='View footnote' class='footnote'>" + n + "</a>]";
545 var id =spans[i].getAttribute("id");
546 if (id != null) refs["#"+id] = n;
549 if (n == 0)
550 noteholder.parentNode.removeChild(noteholder);
551 else {
552 // Process footnoterefs.
553 for (i=0; i<spans.length; i++) {
554 if (spans[i].className == "footnoteref") {
555 var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
556 href = href.match(/#.*/)[0]; // Because IE return full URL.
557 n = refs[href];
558 spans[i].innerHTML =
559 "[<a href='#_footnote_" + n +
560 "' title='View footnote' class='footnote'>" + n + "</a>]";
567 /*]]>*/
568 </script>
569 </head>
570 <body>
571 <div id="header">
572 <h1>
573 git-add(1) Manual Page
574 </h1>
575 <h2>NAME</h2>
576 <div class="sectionbody">
577 <p>git-add -
578 Add file contents to the index
579 </p>
580 </div>
581 </div>
582 <div id="content">
583 <h2 id="_synopsis">SYNOPSIS</h2>
584 <div class="sectionbody">
585 <div class="verseblock">
586 <div class="verseblock-content"><em>git add</em> [-n] [-v] [--force | -f] [--interactive | -i] [--patch | -p]
587 [--edit | -e] [--all | [--update | -u]] [--intent-to-add | -N]
588 [--refresh] [--ignore-errors] [--ignore-missing] [--]
589 [&lt;filepattern&gt;&#8230;]</div>
590 <div class="verseblock-attribution">
591 </div></div>
592 </div>
593 <h2 id="_description">DESCRIPTION</h2>
594 <div class="sectionbody">
595 <div class="paragraph"><p>This command updates the index using the current content found in
596 the working tree, to prepare the content staged for the next commit.
597 It typically adds the current content of existing paths as a whole,
598 but with some options it can also be used to add content with
599 only part of the changes made to the working tree files applied, or
600 remove paths that do not exist in the working tree anymore.</p></div>
601 <div class="paragraph"><p>The "index" holds a snapshot of the content of the working tree, and it
602 is this snapshot that is taken as the contents of the next commit. Thus
603 after making any changes to the working directory, and before running
604 the commit command, you must use the <tt>add</tt> command to add any new or
605 modified files to the index.</p></div>
606 <div class="paragraph"><p>This command can be performed multiple times before a commit. It only
607 adds the content of the specified file(s) at the time the add command is
608 run; if you want subsequent changes included in the next commit, then
609 you must run <tt>git add</tt> again to add the new content to the index.</p></div>
610 <div class="paragraph"><p>The <tt>git status</tt> command can be used to obtain a summary of which
611 files have changes that are staged for the next commit.</p></div>
612 <div class="paragraph"><p>The <tt>git add</tt> command will not add ignored files by default. If any
613 ignored files were explicitly specified on the command line, <tt>git add</tt>
614 will fail with a list of ignored files. Ignored files reached by
615 directory recursion or filename globbing performed by Git (quote your
616 globs before the shell) will be silently ignored. The <em>git add</em> command can
617 be used to add ignored files with the <tt>-f</tt> (force) option.</p></div>
618 <div class="paragraph"><p>Please see <a href="git-commit.html">git-commit(1)</a> for alternative ways to add content to a
619 commit.</p></div>
620 </div>
621 <h2 id="_options">OPTIONS</h2>
622 <div class="sectionbody">
623 <div class="dlist"><dl>
624 <dt class="hdlist1">
625 &lt;filepattern&gt;&#8230;
626 </dt>
627 <dd>
629 Files to add content from. Fileglobs (e.g. <tt>*.c</tt>) can
630 be given to add all matching files. Also a
631 leading directory name (e.g. <tt>dir</tt> to add <tt>dir/file1</tt>
632 and <tt>dir/file2</tt>) can be given to add all files in the
633 directory, recursively.
634 </p>
635 </dd>
636 <dt class="hdlist1">
638 </dt>
639 <dt class="hdlist1">
640 --dry-run
641 </dt>
642 <dd>
644 Don&#8217;t actually add the file(s), just show if they exist and/or will
645 be ignored.
646 </p>
647 </dd>
648 <dt class="hdlist1">
650 </dt>
651 <dt class="hdlist1">
652 --verbose
653 </dt>
654 <dd>
656 Be verbose.
657 </p>
658 </dd>
659 <dt class="hdlist1">
661 </dt>
662 <dt class="hdlist1">
663 --force
664 </dt>
665 <dd>
667 Allow adding otherwise ignored files.
668 </p>
669 </dd>
670 <dt class="hdlist1">
672 </dt>
673 <dt class="hdlist1">
674 --interactive
675 </dt>
676 <dd>
678 Add modified contents in the working tree interactively to
679 the index. Optional path arguments may be supplied to limit
680 operation to a subset of the working tree. See &#8220;Interactive
681 mode&#8221; for details.
682 </p>
683 </dd>
684 <dt class="hdlist1">
686 </dt>
687 <dt class="hdlist1">
688 --patch
689 </dt>
690 <dd>
692 Interactively choose hunks of patch between the index and the
693 work tree and add them to the index. This gives the user a chance
694 to review the difference before adding modified contents to the
695 index.
696 </p>
697 <div class="paragraph"><p>This effectively runs <tt>add --interactive</tt>, but bypasses the
698 initial command menu and directly jumps to the <tt>patch</tt> subcommand.
699 See &#8220;Interactive mode&#8221; for details.</p></div>
700 </dd>
701 <dt class="hdlist1">
702 -e, --edit
703 </dt>
704 <dd>
706 Open the diff vs. the index in an editor and let the user
707 edit it. After the editor was closed, adjust the hunk headers
708 and apply the patch to the index.
709 </p>
710 <div class="paragraph"><p>The intent of this option is to pick and choose lines of the patch to
711 apply, or even to modify the contents of lines to be staged. This can be
712 quicker and more flexible than using the interactive hunk selector.
713 However, it is easy to confuse oneself and create a patch that does not
714 apply to the index. See EDITING PATCHES below.</p></div>
715 </dd>
716 <dt class="hdlist1">
718 </dt>
719 <dt class="hdlist1">
720 --update
721 </dt>
722 <dd>
724 Only match &lt;filepattern&gt; against already tracked files in
725 the index rather than the working tree. That means that it
726 will never stage new files, but that it will stage modified
727 new contents of tracked files and that it will remove files
728 from the index if the corresponding files in the working tree
729 have been removed.
730 </p>
731 <div class="paragraph"><p>If no &lt;filepattern&gt; is given, default to "."; in other words,
732 update all tracked files in the current directory and its
733 subdirectories.</p></div>
734 </dd>
735 <dt class="hdlist1">
737 </dt>
738 <dt class="hdlist1">
739 --all
740 </dt>
741 <dd>
743 Like <tt>-u</tt>, but match &lt;filepattern&gt; against files in the
744 working tree in addition to the index. That means that it
745 will find new files as well as staging modified content and
746 removing files that are no longer in the working tree.
747 </p>
748 </dd>
749 <dt class="hdlist1">
751 </dt>
752 <dt class="hdlist1">
753 --intent-to-add
754 </dt>
755 <dd>
757 Record only the fact that the path will be added later. An entry
758 for the path is placed in the index with no content. This is
759 useful for, among other things, showing the unstaged content of
760 such files with <tt>git diff</tt> and committing them with <tt>git commit
761 -a</tt>.
762 </p>
763 </dd>
764 <dt class="hdlist1">
765 --refresh
766 </dt>
767 <dd>
769 Don&#8217;t add the file(s), but only refresh their stat()
770 information in the index.
771 </p>
772 </dd>
773 <dt class="hdlist1">
774 --ignore-errors
775 </dt>
776 <dd>
778 If some files could not be added because of errors indexing
779 them, do not abort the operation, but continue adding the
780 others. The command shall still exit with non-zero status.
781 The configuration variable <tt>add.ignoreErrors</tt> can be set to
782 true to make this the default behaviour.
783 </p>
784 </dd>
785 <dt class="hdlist1">
786 --ignore-missing
787 </dt>
788 <dd>
790 This option can only be used together with --dry-run. By using
791 this option the user can check if any of the given files would
792 be ignored, no matter if they are already present in the work
793 tree or not.
794 </p>
795 </dd>
796 <dt class="hdlist1">
798 </dt>
799 <dd>
801 This option can be used to separate command-line options from
802 the list of files, (useful when filenames might be mistaken
803 for command-line options).
804 </p>
805 </dd>
806 </dl></div>
807 </div>
808 <h2 id="_configuration">Configuration</h2>
809 <div class="sectionbody">
810 <div class="paragraph"><p>The optional configuration variable <tt>core.excludesfile</tt> indicates a path to a
811 file containing patterns of file names to exclude from git-add, similar to
812 $GIT_DIR/info/exclude. Patterns in the exclude file are used in addition to
813 those in info/exclude. See <a href="gitrepository-layout.html">gitrepository-layout(5)</a>.</p></div>
814 </div>
815 <h2 id="_examples">EXAMPLES</h2>
816 <div class="sectionbody">
817 <div class="ulist"><ul>
818 <li>
820 Adds content from all <tt>*.txt</tt> files under <tt>Documentation</tt> directory
821 and its subdirectories:
822 </p>
823 <div class="listingblock">
824 <div class="content">
825 <pre><tt>$ git add Documentation/\*.txt</tt></pre>
826 </div></div>
827 <div class="paragraph"><p>Note that the asterisk <tt>*</tt> is quoted from the shell in this
828 example; this lets the command include the files from
829 subdirectories of <tt>Documentation/</tt> directory.</p></div>
830 </li>
831 <li>
833 Considers adding content from all git-*.sh scripts:
834 </p>
835 <div class="listingblock">
836 <div class="content">
837 <pre><tt>$ git add git-*.sh</tt></pre>
838 </div></div>
839 <div class="paragraph"><p>Because this example lets the shell expand the asterisk (i.e. you are
840 listing the files explicitly), it does not consider
841 <tt>subdir/git-foo.sh</tt>.</p></div>
842 </li>
843 </ul></div>
844 </div>
845 <h2 id="_interactive_mode">Interactive mode</h2>
846 <div class="sectionbody">
847 <div class="paragraph"><p>When the command enters the interactive mode, it shows the
848 output of the <em>status</em> subcommand, and then goes into its
849 interactive command loop.</p></div>
850 <div class="paragraph"><p>The command loop shows the list of subcommands available, and
851 gives a prompt "What now&gt; ". In general, when the prompt ends
852 with a single <em>&gt;</em>, you can pick only one of the choices given
853 and type return, like this:</p></div>
854 <div class="listingblock">
855 <div class="content">
856 <pre><tt> *** Commands ***
857 1: status 2: update 3: revert 4: add untracked
858 5: patch 6: diff 7: quit 8: help
859 What now&gt; 1</tt></pre>
860 </div></div>
861 <div class="paragraph"><p>You also could say <tt>s</tt> or <tt>sta</tt> or <tt>status</tt> above as long as the
862 choice is unique.</p></div>
863 <div class="paragraph"><p>The main command loop has 6 subcommands (plus help and quit).</p></div>
864 <div class="dlist"><dl>
865 <dt class="hdlist1">
866 status
867 </dt>
868 <dd>
870 This shows the change between HEAD and index (i.e. what will be
871 committed if you say <tt>git commit</tt>), and between index and
872 working tree files (i.e. what you could stage further before
873 <tt>git commit</tt> using <tt>git add</tt>) for each path. A sample output
874 looks like this:
875 </p>
876 <div class="listingblock">
877 <div class="content">
878 <pre><tt> staged unstaged path
879 1: binary nothing foo.png
880 2: +403/-35 +1/-1 git-add--interactive.perl</tt></pre>
881 </div></div>
882 <div class="paragraph"><p>It shows that foo.png has differences from HEAD (but that is
883 binary so line count cannot be shown) and there is no
884 difference between indexed copy and the working tree
885 version (if the working tree version were also different,
886 <em>binary</em> would have been shown in place of <em>nothing</em>). The
887 other file, git-add&#45;&#45;interactive.perl, has 403 lines added
888 and 35 lines deleted if you commit what is in the index, but
889 working tree file has further modifications (one addition and
890 one deletion).</p></div>
891 </dd>
892 <dt class="hdlist1">
893 update
894 </dt>
895 <dd>
897 This shows the status information and issues an "Update&gt;&gt;"
898 prompt. When the prompt ends with double <em>&gt;&gt;</em>, you can
899 make more than one selection, concatenated with whitespace or
900 comma. Also you can say ranges. E.g. "2-5 7,9" to choose
901 2,3,4,5,7,9 from the list. If the second number in a range is
902 omitted, all remaining patches are taken. E.g. "7-" to choose
903 7,8,9 from the list. You can say <em>*</em> to choose everything.
904 </p>
905 <div class="paragraph"><p>What you chose are then highlighted with <em>*</em>,
906 like this:</p></div>
907 <div class="listingblock">
908 <div class="content">
909 <pre><tt> staged unstaged path
910 1: binary nothing foo.png
911 * 2: +403/-35 +1/-1 git-add--interactive.perl</tt></pre>
912 </div></div>
913 <div class="paragraph"><p>To remove selection, prefix the input with <tt>-</tt>
914 like this:</p></div>
915 <div class="listingblock">
916 <div class="content">
917 <pre><tt>Update&gt;&gt; -2</tt></pre>
918 </div></div>
919 <div class="paragraph"><p>After making the selection, answer with an empty line to stage the
920 contents of working tree files for selected paths in the index.</p></div>
921 </dd>
922 <dt class="hdlist1">
923 revert
924 </dt>
925 <dd>
927 This has a very similar UI to <em>update</em>, and the staged
928 information for selected paths are reverted to that of the
929 HEAD version. Reverting new paths makes them untracked.
930 </p>
931 </dd>
932 <dt class="hdlist1">
933 add untracked
934 </dt>
935 <dd>
937 This has a very similar UI to <em>update</em> and
938 <em>revert</em>, and lets you add untracked paths to the index.
939 </p>
940 </dd>
941 <dt class="hdlist1">
942 patch
943 </dt>
944 <dd>
946 This lets you choose one path out of a <em>status</em> like selection.
947 After choosing the path, it presents the diff between the index
948 and the working tree file and asks you if you want to stage
949 the change of each hunk. You can select one of the following
950 options and type return:
951 </p>
952 <div class="literalblock">
953 <div class="content">
954 <pre><tt>y - stage this hunk
955 n - do not stage this hunk
956 q - quit; do not stage this hunk nor any of the remaining ones
957 a - stage this hunk and all later hunks in the file
958 d - do not stage this hunk nor any of the later hunks in the file
959 g - select a hunk to go to
960 / - search for a hunk matching the given regex
961 j - leave this hunk undecided, see next undecided hunk
962 J - leave this hunk undecided, see next hunk
963 k - leave this hunk undecided, see previous undecided hunk
964 K - leave this hunk undecided, see previous hunk
965 s - split the current hunk into smaller hunks
966 e - manually edit the current hunk
967 ? - print help</tt></pre>
968 </div></div>
969 <div class="paragraph"><p>After deciding the fate for all hunks, if there is any hunk
970 that was chosen, the index is updated with the selected hunks.</p></div>
971 <div class="paragraph"><p>You can omit having to type return here, by setting the configuration
972 variable <tt>interactive.singlekey</tt> to <tt>true</tt>.</p></div>
973 </dd>
974 <dt class="hdlist1">
975 diff
976 </dt>
977 <dd>
979 This lets you review what will be committed (i.e. between
980 HEAD and index).
981 </p>
982 </dd>
983 </dl></div>
984 </div>
985 <h2 id="_editing_patches">EDITING PATCHES</h2>
986 <div class="sectionbody">
987 <div class="paragraph"><p>Invoking <tt>git add -e</tt> or selecting <tt>e</tt> from the interactive hunk
988 selector will open a patch in your editor; after the editor exits, the
989 result is applied to the index. You are free to make arbitrary changes
990 to the patch, but note that some changes may have confusing results, or
991 even result in a patch that cannot be applied. If you want to abort the
992 operation entirely (i.e., stage nothing new in the index), simply delete
993 all lines of the patch. The list below describes some common things you
994 may see in a patch, and which editing operations make sense on them.</p></div>
995 <div class="dlist"><dl>
996 <dt class="hdlist1">
997 added content
998 </dt>
999 <dd>
1001 Added content is represented by lines beginning with "&#43;". You can
1002 prevent staging any addition lines by deleting them.
1003 </p>
1004 </dd>
1005 <dt class="hdlist1">
1006 removed content
1007 </dt>
1008 <dd>
1010 Removed content is represented by lines beginning with "-". You can
1011 prevent staging their removal by converting the "-" to a " " (space).
1012 </p>
1013 </dd>
1014 <dt class="hdlist1">
1015 modified content
1016 </dt>
1017 <dd>
1019 Modified content is represented by "-" lines (removing the old content)
1020 followed by "&#43;" lines (adding the replacement content). You can
1021 prevent staging the modification by converting "-" lines to " ", and
1022 removing "&#43;" lines. Beware that modifying only half of the pair is
1023 likely to introduce confusing changes to the index.
1024 </p>
1025 </dd>
1026 </dl></div>
1027 <div class="paragraph"><p>There are also more complex operations that can be performed. But beware
1028 that because the patch is applied only to the index and not the working
1029 tree, the working tree will appear to "undo" the change in the index.
1030 For example, introducing a new line into the index that is in neither
1031 the HEAD nor the working tree will stage the new line for commit, but
1032 the line will appear to be reverted in the working tree.</p></div>
1033 <div class="paragraph"><p>Avoid using these constructs, or do so with extreme caution.</p></div>
1034 <div class="dlist"><dl>
1035 <dt class="hdlist1">
1036 removing untouched content
1037 </dt>
1038 <dd>
1040 Content which does not differ between the index and working tree may be
1041 shown on context lines, beginning with a " " (space). You can stage
1042 context lines for removal by converting the space to a "-". The
1043 resulting working tree file will appear to re-add the content.
1044 </p>
1045 </dd>
1046 <dt class="hdlist1">
1047 modifying existing content
1048 </dt>
1049 <dd>
1051 One can also modify context lines by staging them for removal (by
1052 converting " " to "-") and adding a "&#43;" line with the new content.
1053 Similarly, one can modify "&#43;" lines for existing additions or
1054 modifications. In all cases, the new modification will appear reverted
1055 in the working tree.
1056 </p>
1057 </dd>
1058 <dt class="hdlist1">
1059 new content
1060 </dt>
1061 <dd>
1063 You may also add new content that does not exist in the patch; simply
1064 add new lines, each starting with "&#43;". The addition will appear
1065 reverted in the working tree.
1066 </p>
1067 </dd>
1068 </dl></div>
1069 <div class="paragraph"><p>There are also several operations which should be avoided entirely, as
1070 they will make the patch impossible to apply:</p></div>
1071 <div class="ulist"><ul>
1072 <li>
1074 adding context (" ") or removal ("-") lines
1075 </p>
1076 </li>
1077 <li>
1079 deleting context or removal lines
1080 </p>
1081 </li>
1082 <li>
1084 modifying the contents of context or removal lines
1085 </p>
1086 </li>
1087 </ul></div>
1088 </div>
1089 <h2 id="_see_also">SEE ALSO</h2>
1090 <div class="sectionbody">
1091 <div class="paragraph"><p><a href="git-status.html">git-status(1)</a>
1092 <a href="git-rm.html">git-rm(1)</a>
1093 <a href="git-reset.html">git-reset(1)</a>
1094 <a href="git-mv.html">git-mv(1)</a>
1095 <a href="git-commit.html">git-commit(1)</a>
1096 <a href="git-update-index.html">git-update-index(1)</a></p></div>
1097 </div>
1098 <h2 id="_git">GIT</h2>
1099 <div class="sectionbody">
1100 <div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
1101 </div>
1102 </div>
1103 <div id="footnotes"><hr /></div>
1104 <div id="footer">
1105 <div id="footer-text">
1106 Last updated 2011-09-21 23:01:14 PDT
1107 </div>
1108 </div>
1109 </body>
1110 </html>