Autogenerated man pages for v1.3.2-g8611
[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 \fIgit\-checkout\-index\fR [\-u] [\-q] [\-a] [\-f] [\-n] [\-\-prefix=<string>]
27                    [\-\-stage=<number>|all]
28                    [\-\-temp]
29                    [\-z] [\-\-stdin]
30                    [\-\-] [<file>]*
31 .fi
32
33 .SH "DESCRIPTION"
34
35
36 Will copy all files listed from the index to the working directory (not overwriting existing files)\&.
37
38 .SH "OPTIONS"
39
40 .TP
41 \-u|\-\-index
42 update stat information for the checked out entries in the index file\&.
43
44 .TP
45 \-q|\-\-quiet
46 be quiet if files exist or are not in the index
47
48 .TP
49 \-f|\-\-force
50 forces overwrite of existing files
51
52 .TP
53 \-a|\-\-all
54 checks out all files in the index\&. Cannot be used together with explicit filenames\&.
55
56 .TP
57 \-n|\-\-no\-create
58 Don't checkout new files, only refresh files already checked out\&.
59
60 .TP
61 \-\-prefix=<string>
62 When creating files, prepend <string> (usually a directory including a trailing /)
63
64 .TP
65 \-\-stage=<number>|all
66 Instead of checking out unmerged entries, copy out the files from named stage\&. <number> must be between 1 and 3\&. Note: \-\-stage=all automatically implies \-\-temp\&.
67
68 .TP
69 \-\-temp
70 Instead of copying the files to the working directory write the content to temporary files\&. The temporary name associations will be written to stdout\&.
71
72 .TP
73 \-\-stdin
74 Instead of taking list of paths from the command line, read list of paths from the standard input\&. Paths are separated by LF (i\&.e\&. one path per line) by default\&.
75
76 .TP
77 \-z
78 Only meaningful with \-\-stdin; paths are separated with NUL character instead of LF\&.
79
80 .TP
81 \-\-
82 Do not interpret any more arguments as options\&.
83
84
85 The order of the flags used to matter, but not anymore\&.
86
87
88 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\&.
89
90
91 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:
92
93 .nf
94 $ find \&. \-name '*\&.h' \-print0 | xargs \-0 git\-checkout\-index \-f \-\-
95 .fi
96
97
98 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\&. But since git\-checkout\-index accepts \-\-stdin it would be faster to use:
99
100 .nf
101 $ find \&. \-name '*\&.h' \-print0 | git\-checkout\-index \-f \-z \-\-stdin
102 .fi
103
104
105 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\&.
106
107 .SH "USING --TEMP OR --STAGE=ALL"
108
109
110 When \-\-temp is used (or implied by \-\-stage=all) git\-checkout\-index will create a temporary file for each index entry being checked out\&. The index will not be updated with stat information\&. These options can be useful if the caller needs all stages of all unmerged entries so that the unmerged files can be processed by an external merge tool\&.
111
112
113 A listing will be written to stdout providing the association of temporary file names to tracked path names\&. The listing format has two variations:
114
115 .TP 3
116 1.
117 tempname TAB path RS
118
119 The first format is what gets used when \-\-stage is omitted or is not \-\-stage=all\&. The field tempname is the temporary file name holding the file content and path is the tracked path name in the index\&. Only the requested entries are output\&.
120 .TP
121 2.
122 stage1temp SP stage2temp SP stage3tmp TAB path RS
123
124 The second format is what gets used when \-\-stage=all\&. The three stage temporary fields (stage1temp, stage2temp, stage3temp) list the name of the temporary file if there is a stage entry in the index or \&. if there is no stage entry\&. Paths which only have a stage 0 entry will always be omitted from the output\&.
125 .LP
126
127
128 In both formats RS (the record separator) is newline by default but will be the null byte if \-z was passed on the command line\&. The temporary file names are always safe strings; they will never contain directory separators or whitespace characters\&. The path field is always relative to the current directory and the temporary file names are always relative to the top level directory\&.
129
130
131 If the object being copied out to a temporary file is a symbolic link the content of the link will be written to a normal file\&. It is up to the end\-user or the Porcelain to make use of this information\&.
132
133 .SH "EXAMPLES"
134
135 .TP
136 To update and refresh only the files already checked out
137
138 .nf
139 $ git\-checkout\-index \-n \-f \-a && git\-update\-index \-\-ignore\-missing \-\-refresh
140 .fi
141
142 .TP
143 Using git\-checkout\-index to "export an entire tree"
144 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:
145
146
147 .nf
148 $ git\-checkout\-index \-\-prefix=git\-export\-dir/ \-a
149 .fi
150 git\-checkout\-index will "export" the index into the specified directory\&.
151
152 The final "/" is important\&. The exported name is literally just prefixed with the specified string\&. Contrast this with the following example\&.
153
154 .TP
155 Export files with a prefix
156
157 .nf
158 $ git\-checkout\-index \-\-prefix=\&.merged\- Makefile
159 .fi
160 This will check out the currently cached copy of Makefile into the file \&.merged\-Makefile\&.
161
162 .SH "AUTHOR"
163
164
165 Written by Linus Torvalds <torvalds@osdl\&.org>
166
167 .SH "DOCUMENTATION"
168
169
170 Documentation by David Greaves, Junio C Hamano and the git\-list <git@vger\&.kernel\&.org>\&.
171
172 .SH "GIT"
173
174
175 Part of the \fBgit\fR(7) suite
176