]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/git-ls-files.txt
Documentation: be consistent about "git-" versus "git "
[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]
b0391890
JH
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>]
ad0cae4c 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::
2cf565c5
DG
47 Show other files in the output
48
3240240f
SB
49-i::
50--ignored::
0fc4baeb
MS
51 Show ignored files in the output.
52 Note that this also reverses any exclude list present.
2cf565c5 53
3240240f
SB
54-s::
55--stage::
2cf565c5
DG
56 Show stage files in the output
57
a3259570
PB
58--directory::
59 If a whole directory is classified as "other", show just its
60 name (with a trailing slash) and not its whole contents.
61
b0a3de42
PB
62--no-empty-directory::
63 Do not list empty directories. Has no effect without --directory.
64
3240240f
SB
65-u::
66--unmerged::
2cf565c5
DG
67 Show unmerged files in the output (forces --stage)
68
3240240f
SB
69-k::
70--killed::
6ca45943 71 Show files on the filesystem that need to be removed due
ab182478 72 to file/directory conflicts for checkout-index to
6ca45943
JH
73 succeed.
74
2cf565c5 75-z::
d88156e9 76 \0 line termination on output.
2cf565c5 77
3240240f
SB
78-x <pattern>::
79--exclude=<pattern>::
2cf565c5
DG
80 Skips files matching pattern.
81 Note that pattern is a shell wildcard pattern.
82
3240240f
SB
83-X <file>::
84--exclude-from=<file>::
2cf565c5 85 exclude patterns are read from <file>; 1 per line.
30b0535f
JH
86
87--exclude-per-directory=<file>::
88 read additional exclude patterns that apply only to the
89 directory and its subdirectories in <file>.
2cf565c5 90
8e7b07c8
JK
91--exclude-standard::
92 Add the standard git exclusions: .git/info/exclude, .gitignore
93 in each directory, and the user's global exclusion file.
94
c8af25ca
CW
95--error-unmatch::
96 If any <file> does not appear in the index, treat this as an
97 error (return 1).
98
a7a0f3d3
JH
99--with-tree=<tree-ish>::
100 When using --error-unmatch to expand the user supplied
101 <file> (i.e. path pattern) arguments to paths, pretend
102 that paths which were removed in the index since the
103 named <tree-ish> are still present. Using this option
104 with `-s` or `-u` options does not make any sense.
105
2cf565c5
DG
106-t::
107 Identify the file status with the following tags (followed by
108 a space) at the start of each line:
df8baa42
JF
109 H:: cached
110 M:: unmerged
111 R:: removed/deleted
89438677 112 C:: modified/changed
df8baa42 113 K:: to be killed
41ac06c7 114 ?:: other
2cf565c5 115
f9666adf
JH
116-v::
117 Similar to `-t`, but use lowercase letters for files
56c3eb17 118 that are marked as 'assume unchanged' (see
5162e697 119 linkgit:git-update-index[1]).
f9666adf 120
9a84074d
JH
121--full-name::
122 When run from a subdirectory, the command usually
123 outputs paths relative to the current directory. This
124 option forces paths to be output relative to the project
125 top directory.
126
ad0cae4c
EW
127--abbrev[=<n>]::
128 Instead of showing the full 40-byte hexadecimal object
129 lines, show only handful hexdigits prefix.
130 Non default number of digits can be specified with --abbrev=<n>.
131
e994004f 132\--::
500b97e4
FK
133 Do not interpret any more arguments as options.
134
135<file>::
136 Files to show. If no files are given all files which match the other
137 specified criteria are shown.
138
2cf565c5
DG
139Output
140------
141show files just outputs the filename unless '--stage' is specified in
142which case it outputs:
143
144 [<tag> ]<mode> <object> <stage> <file>
145
146"git-ls-files --unmerged" and "git-ls-files --stage" can be used to examine
147detailed information on unmerged paths.
148
149For an unmerged path, instead of recording a single mode/SHA1 pair,
5adf317b 150the index records up to three such pairs; one from tree O in stage
2cf565c5 1511, A in stage 2, and B in stage 3. This information can be used by
2c6e4771 152the user (or the porcelain) to see what should eventually be recorded at the
baeda3a7 153path. (see git-read-tree for more information on state)
2cf565c5 154
d88156e9
JH
155When `-z` option is not used, TAB, LF, and backslash characters
156in pathnames are represented as `\t`, `\n`, and `\\`,
157respectively.
158
30b0535f
JH
159
160Exclude Patterns
161----------------
162
163'git-ls-files' can use a list of "exclude patterns" when
164traversing the directory tree and finding files to show when the
5162e697 165flags --others or --ignored are specified. linkgit:gitignore[5]
cedb8d5d 166specifies the format of exclude patterns.
30b0535f 167
cedb8d5d 168These exclude patterns come from these places, in order:
30b0535f 169
cedb8d5d
JT
170 1. The command line flag --exclude=<pattern> specifies a
171 single pattern. Patterns are ordered in the same order
172 they appear in the command line.
30b0535f 173
cedb8d5d
JT
174 2. The command line flag --exclude-from=<file> specifies a
175 file containing a list of patterns. Patterns are ordered
176 in the same order they appear in the file.
30b0535f 177
df8baa42 178 3. command line flag --exclude-per-directory=<name> specifies
30b0535f 179 a name of the file in each directory 'git-ls-files'
cedb8d5d
JT
180 examines, normally `.gitignore`. Files in deeper
181 directories take precedence. Patterns are ordered in the
182 same order they appear in the files.
30b0535f
JH
183
184A pattern specified on the command line with --exclude or read
185from the file specified with --exclude-from is relative to the
186top of the directory tree. A pattern read from a file specified
187by --exclude-per-directory is relative to the directory that the
188pattern file appears in.
189
56ae8df5 190SEE ALSO
c1bdacf9 191--------
5162e697 192linkgit:git-read-tree[1], linkgit:gitignore[5]
2cf565c5
DG
193
194
195Author
196------
197Written by Linus Torvalds <torvalds@osdl.org>
198
199Documentation
200--------------
cedb8d5d 201Documentation by David Greaves, Junio C Hamano, Josh Triplett, and the git-list <git@vger.kernel.org>.
2cf565c5
DG
202
203GIT
204---
9e1f0a85 205Part of the linkgit:git[1] suite