c167462f9c377348c2198cbc7b19f68de81e7963
[git.git] / man1 / git-checkout-index.1
1 .\"Generated by db2man.xsl. Don't modify this, modify the source.
2 .de Sh \" Subsection
3 .br
4 .if t .Sp
5 .ne 5
6 .PP
7 \fB\\$1\fR
8 .PP
9 ..
10 .de Sp \" Vertical space (when we can't use .PP)
11 .if t .sp .5v
12 .if n .sp
13 ..
14 .de Ip \" List item
15 .br
16 .ie \\n(.$>=3 .ne \\$3
17 .el .ne 3
18 .IP "\\$1" \\$2
19 ..
20 .TH "GIT-CHECKOUT-INDEX" 1 "" "" ""
21 .SH NAME
22 git-checkout-index \- Copy files from the index to the working directory
23 .SH "SYNOPSIS"
24
25 .nf
26 git\-checkout\-index [\-u] [\-q] [\-a] [\-f] [\-n] [\-\-prefix=<string>]
27                    [\-\-stage=<number>] [\-\-] <file>...
28 .fi
29
30 .SH "DESCRIPTION"
31
32
33 Will copy all files listed from the index to the working directory (not overwriting existing files)\&.
34
35 .SH "OPTIONS"
36
37 .TP
38 \-u|\-\-index
39 update stat information for the checked out entries in the index file\&.
40
41 .TP
42 \-q|\-\-quiet
43 be quiet if files exist or are not in the index
44
45 .TP
46 \-f|\-\-force
47 forces overwrite of existing files
48
49 .TP
50 \-a|\-\-all
51 checks out all files in the index\&. Cannot be used together with explicit filenames\&.
52
53 .TP
54 \-n|\-\-no\-create
55 Don't checkout new files, only refresh files already checked out\&.
56
57 .TP
58 \-\-prefix=<string>
59 When creating files, prepend <string> (usually a directory including a trailing /)
60
61 .TP
62 \-\-stage=<number>
63 Instead of checking out unmerged entries, copy out the files from named stage\&. <number> must be between 1 and 3\&.
64
65 .TP
66 --
67 Do not interpret any more arguments as options\&.
68
69
70 The order of the flags used to matter, but not anymore\&.
71
72
73 Just doing git\-checkout\-index does nothing\&. You probably meant git\-checkout\-index \-a\&. And if you want to force it, you want git\-checkout\-index \-f \-a\&.
74
75
76 Intuitiveness is not the goal here\&. Repeatability is\&. The reason for the "no arguments means no work" behavior is that from scripts you are supposed to be able to do:
77
78 .IP
79 $ find \&. \-name '*\&.h' \-print0 | xargs \-0 git\-checkout\-index \-f \-\-
80
81 which will force all existing *\&.h files to be replaced with their cached copies\&. If an empty command line implied "all", then this would force\-refresh everything in the index, which was not the point\&.
82
83
84 The \-\- is just a good idea when you know the rest will be filenames; it will prevent problems with a filename of, for example, \-a\&. Using \-\- is probably a good policy in scripts\&.
85
86 .SH "EXAMPLES"
87
88 .TP
89 To update and refresh only the files already checked out
90
91 .IP
92 $ git\-checkout\-index \-n \-f \-a && git\-update\-index \-\-ignore\-missing \-\-refresh
93 .TP
94 Using git\-checkout\-index to "export an entire tree"
95 The prefix ability basically makes it trivial to use git\-checkout\-index as an "export as tree" function\&. Just read the desired tree into the index, and do:
96
97
98 .IP
99 $ git\-checkout\-index \-\-prefix=git\-export\-dir/ \-agit\-checkout\-index will "export" the index into the specified directory\&.
100
101 The final "/" is important\&. The exported name is literally just prefixed with the specified string\&. Contrast this with the following example\&.
102
103 .TP
104 Export files with a prefix
105
106 .IP
107 $ git\-checkout\-index \-\-prefix=\&.merged\- MakefileThis will check out the currently cached copy of Makefile into the file \&.merged\-Makefile\&.
108
109 .SH "AUTHOR"
110
111
112 Written by Linus Torvalds <torvalds@osdl\&.org>
113
114 .SH "DOCUMENTATION"
115
116
117 Documentation by David Greaves, Junio C Hamano and the git\-list <git@vger\&.kernel\&.org>\&.
118
119 .SH "GIT"
120
121
122 Part of the \fBgit\fR(7) suite
123