1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
\r
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
\r
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
\r
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
\r
6 <meta name="generator" content="AsciiDoc 7.0.2" />
\r
7 <style type="text/css">
\r
9 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
\r
11 border: 1px solid red;
\r
16 margin: 1em 5% 1em 5%;
\r
20 a:visited { color: fuchsia; }
\r
34 h1, h2, h3, h4, h5, h6 {
\r
36 font-family: sans-serif;
\r
38 margin-bottom: 0.5em;
\r
43 border-bottom: 2px solid silver;
\r
46 border-bottom: 2px solid silver;
\r
56 border: 1px solid silver;
\r
61 margin-bottom: 0.5em;
\r
71 font-family: sans-serif;
\r
78 font-family: sans-serif;
\r
82 font-family: sans-serif;
\r
84 border-top: 2px solid silver;
\r
90 padding-bottom: 0.5em;
\r
94 padding-bottom: 0.5em;
\r
98 div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
\r
99 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
\r
100 div.admonitionblock {
\r
103 margin-bottom: 1.5em;
\r
105 div.admonitionblock {
\r
107 margin-bottom: 2.5em;
\r
110 div.content { /* Block element content. */
\r
114 /* Block element titles. */
\r
115 div.title, caption.title {
\r
116 font-family: sans-serif;
\r
120 margin-bottom: 0.5em;
\r
126 td div.title:first-child {
\r
129 div.content div.title:first-child {
\r
132 div.content + div.title {
\r
136 div.sidebarblock > div.content {
\r
137 background: #ffffee;
\r
138 border: 1px solid silver;
\r
142 div.listingblock > div.content {
\r
143 border: 1px solid silver;
\r
144 background: #f4f4f4;
\r
148 div.quoteblock > div.content {
\r
149 padding-left: 2.0em;
\r
151 div.quoteblock .attribution {
\r
155 div.admonitionblock .icon {
\r
156 vertical-align: top;
\r
159 text-decoration: underline;
\r
161 padding-right: 0.5em;
\r
163 div.admonitionblock td.content {
\r
164 padding-left: 0.5em;
\r
165 border-left: 2px solid silver;
\r
168 div.exampleblock > div.content {
\r
169 border-left: 2px solid silver;
\r
173 div.verseblock div.content {
\r
177 div.imageblock div.content { padding-left: 0; }
\r
178 div.imageblock img { border: 1px solid silver; }
\r
179 span.image img { border-style: none; }
\r
183 margin-bottom: 0.8em;
\r
188 font-style: italic;
\r
190 dd > *:first-child {
\r
195 list-style-position: outside;
\r
198 list-style-type: lower-alpha;
\r
201 div.tableblock > table {
\r
202 border-color: #527bbd;
\r
206 font-family: sans-serif;
\r
215 margin-bottom: 0.8em;
\r
218 vertical-align: top;
\r
219 font-style: italic;
\r
220 padding-right: 0.8em;
\r
223 vertical-align: top;
\r
227 div#footer-badges { display: none; }
\r
229 include::./stylesheets/xhtml11-manpage.css[]
\r
230 /* Workarounds for IE6's broken and incomplete CSS2. */
\r
232 div.sidebar-content {
\r
233 background: #ffffee;
\r
234 border: 1px solid silver;
\r
237 div.sidebar-title, div.image-title {
\r
238 font-family: sans-serif;
\r
241 margin-bottom: 0.5em;
\r
244 div.listingblock div.content {
\r
245 border: 1px solid silver;
\r
246 background: #f4f4f4;
\r
250 div.quoteblock-content {
\r
251 padding-left: 2.0em;
\r
254 div.exampleblock-content {
\r
255 border-left: 2px solid silver;
\r
256 padding-left: 0.5em;
\r
259 <title>git-checkout-index(1)</title>
\r
264 git-checkout-index(1) Manual Page
\r
267 <div class="sectionbody">
\r
268 <p>git-checkout-index -
\r
269 Copy files from the index to the working directory
\r
274 <div class="sectionbody">
\r
275 <div class="verseblock">
\r
276 <div class="content"><em>git-checkout-index</em> [-u] [-q] [-a] [-f] [-n] [--prefix=<string>]
\r
277 [--stage=<number>|all]
\r
280 [--] [<file>]*</div></div>
\r
282 <h2>DESCRIPTION</h2>
\r
283 <div class="sectionbody">
\r
284 <p>Will copy all files listed from the index to the working directory
\r
285 (not overwriting existing files).</p>
\r
288 <div class="sectionbody">
\r
295 update stat information for the checked out entries in
\r
304 be quiet if files exist or are not in the index
\r
312 forces overwrite of existing files
\r
320 checks out all files in the index. Cannot be used
\r
321 together with explicit filenames.
\r
329 Don't checkout new files, only refresh files already checked
\r
334 --prefix=<string>
\r
338 When creating files, prepend <string> (usually a directory
\r
339 including a trailing /)
\r
343 --stage=<number>|all
\r
347 Instead of checking out unmerged entries, copy out the
\r
348 files from named stage. <number> must be between 1 and 3.
\r
349 Note: --stage=all automatically implies --temp.
\r
357 Instead of copying the files to the working directory
\r
358 write the content to temporary files. The temporary name
\r
359 associations will be written to stdout.
\r
367 Instead of taking list of paths from the command line,
\r
368 read list of paths from the standard input. Paths are
\r
369 separated by LF (i.e. one path per line) by default.
\r
377 Only meaningful with <tt>--stdin</tt>; paths are separated with
\r
378 NUL character instead of LF.
\r
386 Do not interpret any more arguments as options.
\r
390 <p>The order of the flags used to matter, but not anymore.</p>
\r
391 <p>Just doing <tt>git-checkout-index</tt> does nothing. You probably meant
\r
392 <tt>git-checkout-index -a</tt>. And if you want to force it, you want
\r
393 <tt>git-checkout-index -f -a</tt>.</p>
\r
394 <p>Intuitiveness is not the goal here. Repeatability is. The reason for
\r
395 the "no arguments means no work" behavior is that from scripts you are
\r
396 supposed to be able to do:</p>
\r
397 <div class="listingblock">
\r
398 <div class="content">
\r
399 <pre><tt>$ find . -name '*.h' -print0 | xargs -0 git-checkout-index -f --</tt></pre>
\r
401 <p>which will force all existing <tt>*.h</tt> files to be replaced with their
\r
402 cached copies. If an empty command line implied "all", then this would
\r
403 force-refresh everything in the index, which was not the point. But
\r
404 since git-checkout-index accepts --stdin it would be faster to use:</p>
\r
405 <div class="listingblock">
\r
406 <div class="content">
\r
407 <pre><tt>$ find . -name '*.h' -print0 | git-checkout-index -f -z --stdin</tt></pre>
\r
409 <p>The <tt>--</tt> is just a good idea when you know the rest will be filenames;
\r
410 it will prevent problems with a filename of, for example, <tt>-a</tt>.
\r
411 Using <tt>--</tt> is probably a good policy in scripts.</p>
\r
413 <h2>Using --temp or --stage=all</h2>
\r
414 <div class="sectionbody">
\r
415 <p>When <tt>--temp</tt> is used (or implied by <tt>--stage=all</tt>)
\r
416 <tt>git-checkout-index</tt> will create a temporary file for each index
\r
417 entry being checked out. The index will not be updated with stat
\r
418 information. These options can be useful if the caller needs all
\r
419 stages of all unmerged entries so that the unmerged files can be
\r
420 processed by an external merge tool.</p>
\r
421 <p>A listing will be written to stdout providing the association of
\r
422 temporary file names to tracked path names. The listing format
\r
423 has two variations:</p>
\r
427 tempname TAB path RS
\r
429 <p>The first format is what gets used when <tt>--stage</tt> is omitted or
\r
430 is not <tt>--stage=all</tt>. The field tempname is the temporary file
\r
431 name holding the file content and path is the tracked path name in
\r
432 the index. Only the requested entries are output.</p>
\r
436 stage1temp SP stage2temp SP stage3tmp TAB path RS
\r
438 <p>The second format is what gets used when <tt>--stage=all</tt>. The three
\r
439 stage temporary fields (stage1temp, stage2temp, stage3temp) list the
\r
440 name of the temporary file if there is a stage entry in the index
\r
441 or <tt>.</tt> if there is no stage entry. Paths which only have a stage 0
\r
442 entry will always be omitted from the output.</p>
\r
445 <p>In both formats RS (the record separator) is newline by default
\r
446 but will be the null byte if -z was passed on the command line.
\r
447 The temporary file names are always safe strings; they will never
\r
448 contain directory separators or whitespace characters. The path
\r
449 field is always relative to the current directory and the temporary
\r
450 file names are always relative to the top level directory.</p>
\r
451 <p>If the object being copied out to a temporary file is a symbolic
\r
452 link the content of the link will be written to a normal file. It is
\r
453 up to the end-user or the Porcelain to make use of this information.</p>
\r
456 <div class="sectionbody">
\r
459 To update and refresh only the files already checked out
\r
462 <div class="listingblock">
\r
463 <div class="content">
\r
464 <pre><tt>$ git-checkout-index -n -f -a && git-update-index --ignore-missing --refresh</tt></pre>
\r
468 Using <tt>git-checkout-index</tt> to "export an entire tree"
\r
472 The prefix ability basically makes it trivial to use
\r
473 <tt>git-checkout-index</tt> as an "export as tree" function.
\r
474 Just read the desired tree into the index, and do:
\r
476 <div class="listingblock">
\r
477 <div class="content">
\r
478 <pre><tt>$ git-checkout-index --prefix=git-export-dir/ -a</tt></pre>
\r
480 <p><tt>git-checkout-index</tt> will "export" the index into the specified
\r
482 <p>The final "/" is important. The exported name is literally just
\r
483 prefixed with the specified string. Contrast this with the
\r
484 following example.</p>
\r
487 Export files with a prefix
\r
490 <div class="listingblock">
\r
491 <div class="content">
\r
492 <pre><tt>$ git-checkout-index --prefix=.merged- Makefile</tt></pre>
\r
494 <p>This will check out the currently cached copy of <tt>Makefile</tt>
\r
495 into the file <tt>.merged-Makefile</tt>.</p>
\r
500 <div class="sectionbody">
\r
501 <p>Written by Linus Torvalds <torvalds@osdl.org></p>
\r
503 <h2>Documentation</h2>
\r
504 <div class="sectionbody">
\r
505 <p>Documentation by David Greaves,
\r
506 Junio C Hamano and the git-list <git@vger.kernel.org>.</p>
\r
509 <div class="sectionbody">
\r
510 <p>Part of the <a href="git.html">git(7)</a> suite</p>
\r
513 <div id="footer-text">
\r
514 Last updated 07-Mar-2006 05:16:20 UTC
\r