]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/git-ls-files.txt
Merge git://git.bogomips.org/git-svn
[thirdparty/git.git] / Documentation / git-ls-files.txt
CommitLineData
2cf565c5
DG
1git-ls-files(1)
2===============
2cf565c5
DG
3
4NAME
5----
c3f0baac 6git-ls-files - Show information about files in the index and the working tree
2cf565c5
DG
7
8
9SYNOPSIS
10--------
f9666adf 11[verse]
b1889c36 12'git ls-files' [-z] [-t] [-v]
12378c0a
JN
13 (--[cached|deleted|others|ignored|stage|unmerged|killed|modified])*
14 (-[c|d|o|i|s|u|k|m])*
2cf565c5
DG
15 [-x <pattern>|--exclude=<pattern>]
16 [-X <file>|--exclude-from=<file>]
ad0cae4c 17 [--exclude-per-directory=<file>]
8e7b07c8 18 [--exclude-standard]
a7a0f3d3 19 [--error-unmatch] [--with-tree=<tree-ish>]
0adda936 20 [--full-name] [--abbrev] [--] [<file>...]
2cf565c5
DG
21
22DESCRIPTION
23-----------
24This merges the file listing in the directory cache index with the
25actual working directory list, and shows different combinations of the
26two.
27
28One or more of the options below may be used to determine the files
29shown:
30
31OPTIONS
32-------
3240240f
SB
33-c::
34--cached::
2cf565c5
DG
35 Show cached files in the output (default)
36
3240240f
SB
37-d::
38--deleted::
2cf565c5
DG
39 Show deleted files in the output
40
3240240f
SB
41-m::
42--modified::
b0391890
JH
43 Show modified files in the output
44
3240240f
SB
45-o::
46--others::
4d590f06 47 Show other (i.e. untracked) files in the output
2cf565c5 48
3240240f
SB
49-i::
50--ignored::
500348aa
JK
51 Show only ignored files in the output. When showing files in the
52 index, print only those matched by an exclude pattern. When
53 showing "other" files, show only those matched by an exclude
54 pattern.
2cf565c5 55
3240240f
SB
56-s::
57--stage::
c297432d 58 Show staged contents' object name, mode bits and stage number in the output.
2cf565c5 59
a3259570
PB
60--directory::
61 If a whole directory is classified as "other", show just its
62 name (with a trailing slash) and not its whole contents.
63
b0a3de42
PB
64--no-empty-directory::
65 Do not list empty directories. Has no effect without --directory.
66
3240240f
SB
67-u::
68--unmerged::
2cf565c5
DG
69 Show unmerged files in the output (forces --stage)
70
3240240f
SB
71-k::
72--killed::
6ca45943 73 Show files on the filesystem that need to be removed due
ab182478 74 to file/directory conflicts for checkout-index to
6ca45943
JH
75 succeed.
76
2cf565c5 77-z::
d88156e9 78 \0 line termination on output.
2cf565c5 79
3240240f
SB
80-x <pattern>::
81--exclude=<pattern>::
4c608520 82 Skip untracked files matching pattern.
75609a0d
JS
83 Note that pattern is a shell wildcard pattern. See EXCLUDE PATTERNS
84 below for more information.
2cf565c5 85
3240240f
SB
86-X <file>::
87--exclude-from=<file>::
4c608520 88 Read exclude patterns from <file>; 1 per line.
30b0535f
JH
89
90--exclude-per-directory=<file>::
4c608520 91 Read additional exclude patterns that apply only to the
30b0535f 92 directory and its subdirectories in <file>.
2cf565c5 93
8e7b07c8
JK
94--exclude-standard::
95 Add the standard git exclusions: .git/info/exclude, .gitignore
96 in each directory, and the user's global exclusion file.
97
c8af25ca
CW
98--error-unmatch::
99 If any <file> does not appear in the index, treat this as an
100 error (return 1).
101
a7a0f3d3
JH
102--with-tree=<tree-ish>::
103 When using --error-unmatch to expand the user supplied
104 <file> (i.e. path pattern) arguments to paths, pretend
105 that paths which were removed in the index since the
106 named <tree-ish> are still present. Using this option
107 with `-s` or `-u` options does not make any sense.
108
2cf565c5 109-t::
5bc0e247
MM
110 This feature is semi-deprecated. For scripting purpose,
111 linkgit:git-status[1] `--porcelain` and
112 linkgit:git-diff-files[1] `--name-status` are almost always
113 superior alternatives, and users should look at
114 linkgit:git-status[1] `--short` or linkgit:git-diff[1]
115 `--name-status` for more user-friendly alternatives.
116+
117This option identifies the file status with the following tags (followed by
118a space) at the start of each line:
119
df8baa42 120 H:: cached
44a36913 121 S:: skip-worktree
df8baa42
JF
122 M:: unmerged
123 R:: removed/deleted
89438677 124 C:: modified/changed
df8baa42 125 K:: to be killed
41ac06c7 126 ?:: other
2cf565c5 127
f9666adf
JH
128-v::
129 Similar to `-t`, but use lowercase letters for files
56c3eb17 130 that are marked as 'assume unchanged' (see
5162e697 131 linkgit:git-update-index[1]).
f9666adf 132
9a84074d
JH
133--full-name::
134 When run from a subdirectory, the command usually
135 outputs paths relative to the current directory. This
136 option forces paths to be output relative to the project
137 top directory.
138
ad0cae4c
EW
139--abbrev[=<n>]::
140 Instead of showing the full 40-byte hexadecimal object
323b9db8 141 lines, show only a partial prefix.
ad0cae4c
EW
142 Non default number of digits can be specified with --abbrev=<n>.
143
84974217
TR
144--debug::
145 After each line that describes a file, add more data about its
146 cache entry. This is intended to show as much information as
147 possible for manual inspection; the exact format may change at
148 any time.
149
e994004f 150\--::
500b97e4
FK
151 Do not interpret any more arguments as options.
152
153<file>::
154 Files to show. If no files are given all files which match the other
155 specified criteria are shown.
156
2cf565c5
DG
157Output
158------
4fdff3d2 159'git ls-files' just outputs the filenames unless '--stage' is specified in
2cf565c5
DG
160which case it outputs:
161
162 [<tag> ]<mode> <object> <stage> <file>
163
0b444cdb 164'git ls-files --unmerged' and 'git ls-files --stage' can be used to examine
2cf565c5
DG
165detailed information on unmerged paths.
166
167For an unmerged path, instead of recording a single mode/SHA1 pair,
5adf317b 168the index records up to three such pairs; one from tree O in stage
2cf565c5 1691, A in stage 2, and B in stage 3. This information can be used by
2c6e4771 170the user (or the porcelain) to see what should eventually be recorded at the
483bc4f0 171path. (see linkgit:git-read-tree[1] for more information on state)
2cf565c5 172
d88156e9
JH
173When `-z` option is not used, TAB, LF, and backslash characters
174in pathnames are represented as `\t`, `\n`, and `\\`,
175respectively.
176
30b0535f
JH
177
178Exclude Patterns
179----------------
180
0b444cdb 181'git ls-files' can use a list of "exclude patterns" when
30b0535f 182traversing the directory tree and finding files to show when the
5162e697 183flags --others or --ignored are specified. linkgit:gitignore[5]
cedb8d5d 184specifies the format of exclude patterns.
30b0535f 185
cedb8d5d 186These exclude patterns come from these places, in order:
30b0535f 187
cedb8d5d
JT
188 1. The command line flag --exclude=<pattern> specifies a
189 single pattern. Patterns are ordered in the same order
190 they appear in the command line.
30b0535f 191
cedb8d5d
JT
192 2. The command line flag --exclude-from=<file> specifies a
193 file containing a list of patterns. Patterns are ordered
194 in the same order they appear in the file.
30b0535f 195
4c608520 196 3. The command line flag --exclude-per-directory=<name> specifies
0b444cdb 197 a name of the file in each directory 'git ls-files'
cedb8d5d
JT
198 examines, normally `.gitignore`. Files in deeper
199 directories take precedence. Patterns are ordered in the
200 same order they appear in the files.
30b0535f
JH
201
202A pattern specified on the command line with --exclude or read
203from the file specified with --exclude-from is relative to the
204top of the directory tree. A pattern read from a file specified
205by --exclude-per-directory is relative to the directory that the
206pattern file appears in.
207
56ae8df5 208SEE ALSO
c1bdacf9 209--------
5162e697 210linkgit:git-read-tree[1], linkgit:gitignore[5]
2cf565c5 211
2cf565c5
DG
212GIT
213---
9e1f0a85 214Part of the linkgit:git[1] suite