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