David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 1 | git-ls-files(1) |
| 2 | =============== |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 3 | |
| 4 | NAME |
| 5 | ---- |
Junio C Hamano | c3f0baa | 2007-01-18 15:53:37 -0800 | [diff] [blame] | 6 | git-ls-files - Show information about files in the index and the working tree |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 7 | |
| 8 | |
| 9 | SYNOPSIS |
| 10 | -------- |
Junio C Hamano | f9666ad | 2006-02-12 01:48:47 -0800 | [diff] [blame] | 11 | [verse] |
Jonathan Nieder | b1889c3 | 2008-06-30 01:09:04 -0500 | [diff] [blame] | 12 | 'git ls-files' [-z] [-t] [-v] |
Jonathan Nieder | 12378c0 | 2010-08-20 05:31:58 -0500 | [diff] [blame] | 13 | (--[cached|deleted|others|ignored|stage|unmerged|killed|modified])* |
| 14 | (-[c|d|o|i|s|u|k|m])* |
Torsten Bögershausen | a7630bd | 2016-01-16 07:50:02 +0100 | [diff] [blame] | 15 | [--eol] |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 16 | [-x <pattern>|--exclude=<pattern>] |
| 17 | [-X <file>|--exclude-from=<file>] |
Eric Wong | ad0cae4 | 2006-03-07 11:59:17 -0800 | [diff] [blame] | 18 | [--exclude-per-directory=<file>] |
Jeff King | 8e7b07c | 2007-11-15 02:04:30 -0500 | [diff] [blame] | 19 | [--exclude-standard] |
Junio C Hamano | a7a0f3d | 2007-09-14 16:59:04 -0700 | [diff] [blame] | 20 | [--error-unmatch] [--with-tree=<tree-ish>] |
Štěpán Němec | 0adda93 | 2010-10-08 19:31:17 +0200 | [diff] [blame] | 21 | [--full-name] [--abbrev] [--] [<file>...] |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 22 | |
| 23 | DESCRIPTION |
| 24 | ----------- |
| 25 | This merges the file listing in the directory cache index with the |
| 26 | actual working directory list, and shows different combinations of the |
| 27 | two. |
| 28 | |
| 29 | One or more of the options below may be used to determine the files |
| 30 | shown: |
| 31 | |
| 32 | OPTIONS |
| 33 | ------- |
Stephan Beyer | 3240240 | 2008-06-08 03:36:09 +0200 | [diff] [blame] | 34 | -c:: |
| 35 | --cached:: |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 36 | Show cached files in the output (default) |
| 37 | |
Stephan Beyer | 3240240 | 2008-06-08 03:36:09 +0200 | [diff] [blame] | 38 | -d:: |
| 39 | --deleted:: |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 40 | Show deleted files in the output |
| 41 | |
Stephan Beyer | 3240240 | 2008-06-08 03:36:09 +0200 | [diff] [blame] | 42 | -m:: |
| 43 | --modified:: |
Junio C Hamano | b039189 | 2005-09-19 15:11:15 -0700 | [diff] [blame] | 44 | Show modified files in the output |
| 45 | |
Stephan Beyer | 3240240 | 2008-06-08 03:36:09 +0200 | [diff] [blame] | 46 | -o:: |
| 47 | --others:: |
Matthieu Moy | 4d590f0 | 2009-08-06 17:11:48 +0200 | [diff] [blame] | 48 | Show other (i.e. untracked) files in the output |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 49 | |
Stephan Beyer | 3240240 | 2008-06-08 03:36:09 +0200 | [diff] [blame] | 50 | -i:: |
| 51 | --ignored:: |
Jeff King | 500348a | 2009-10-30 15:05:52 -0400 | [diff] [blame] | 52 | Show only ignored files in the output. When showing files in the |
| 53 | index, print only those matched by an exclude pattern. When |
| 54 | showing "other" files, show only those matched by an exclude |
| 55 | pattern. |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 56 | |
Stephan Beyer | 3240240 | 2008-06-08 03:36:09 +0200 | [diff] [blame] | 57 | -s:: |
| 58 | --stage:: |
Junio C Hamano | c297432 | 2008-07-28 22:26:47 -0700 | [diff] [blame] | 59 | Show staged contents' object name, mode bits and stage number in the output. |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 60 | |
Petr Baudis | a325957 | 2006-01-22 01:22:30 +0100 | [diff] [blame] | 61 | --directory:: |
| 62 | If a whole directory is classified as "other", show just its |
| 63 | name (with a trailing slash) and not its whole contents. |
| 64 | |
Petr Baudis | b0a3de4 | 2006-03-26 16:59:52 +0200 | [diff] [blame] | 65 | --no-empty-directory:: |
| 66 | Do not list empty directories. Has no effect without --directory. |
| 67 | |
Stephan Beyer | 3240240 | 2008-06-08 03:36:09 +0200 | [diff] [blame] | 68 | -u:: |
| 69 | --unmerged:: |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 70 | Show unmerged files in the output (forces --stage) |
| 71 | |
Stephan Beyer | 3240240 | 2008-06-08 03:36:09 +0200 | [diff] [blame] | 72 | -k:: |
| 73 | --killed:: |
Junio C Hamano | 6ca4594 | 2005-05-12 17:17:54 -0700 | [diff] [blame] | 74 | Show files on the filesystem that need to be removed due |
Kai Ruemmler | ab18247 | 2005-10-07 14:05:03 -0700 | [diff] [blame] | 75 | to file/directory conflicts for checkout-index to |
Junio C Hamano | 6ca4594 | 2005-05-12 17:17:54 -0700 | [diff] [blame] | 76 | succeed. |
| 77 | |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 78 | -z:: |
Junio C Hamano | d88156e | 2005-10-14 21:56:46 -0700 | [diff] [blame] | 79 | \0 line termination on output. |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 80 | |
Stephan Beyer | 3240240 | 2008-06-08 03:36:09 +0200 | [diff] [blame] | 81 | -x <pattern>:: |
| 82 | --exclude=<pattern>:: |
Junio C Hamano | 4c60852 | 2010-09-15 17:34:20 -0700 | [diff] [blame] | 83 | Skip untracked files matching pattern. |
Jay Soffian | 75609a0 | 2010-09-15 19:56:48 -0400 | [diff] [blame] | 84 | Note that pattern is a shell wildcard pattern. See EXCLUDE PATTERNS |
| 85 | below for more information. |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 86 | |
Stephan Beyer | 3240240 | 2008-06-08 03:36:09 +0200 | [diff] [blame] | 87 | -X <file>:: |
| 88 | --exclude-from=<file>:: |
Junio C Hamano | 4c60852 | 2010-09-15 17:34:20 -0700 | [diff] [blame] | 89 | Read exclude patterns from <file>; 1 per line. |
Junio C Hamano | 30b0535 | 2005-07-24 15:47:26 -0700 | [diff] [blame] | 90 | |
| 91 | --exclude-per-directory=<file>:: |
Junio C Hamano | 4c60852 | 2010-09-15 17:34:20 -0700 | [diff] [blame] | 92 | Read additional exclude patterns that apply only to the |
Junio C Hamano | 30b0535 | 2005-07-24 15:47:26 -0700 | [diff] [blame] | 93 | directory and its subdirectories in <file>. |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 94 | |
Jeff King | 8e7b07c | 2007-11-15 02:04:30 -0500 | [diff] [blame] | 95 | --exclude-standard:: |
Thomas Ackermann | 2de9b71 | 2013-01-21 20:17:53 +0100 | [diff] [blame] | 96 | Add the standard Git exclusions: .git/info/exclude, .gitignore |
Jeff King | 8e7b07c | 2007-11-15 02:04:30 -0500 | [diff] [blame] | 97 | in each directory, and the user's global exclusion file. |
| 98 | |
Carl Worth | c8af25c | 2006-02-21 12:48:30 -0800 | [diff] [blame] | 99 | --error-unmatch:: |
| 100 | If any <file> does not appear in the index, treat this as an |
| 101 | error (return 1). |
| 102 | |
Junio C Hamano | a7a0f3d | 2007-09-14 16:59:04 -0700 | [diff] [blame] | 103 | --with-tree=<tree-ish>:: |
| 104 | When using --error-unmatch to expand the user supplied |
| 105 | <file> (i.e. path pattern) arguments to paths, pretend |
| 106 | that paths which were removed in the index since the |
| 107 | named <tree-ish> are still present. Using this option |
| 108 | with `-s` or `-u` options does not make any sense. |
| 109 | |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 110 | -t:: |
Matthieu Moy | 5bc0e24 | 2010-07-28 09:24:27 +0200 | [diff] [blame] | 111 | This feature is semi-deprecated. For scripting purpose, |
| 112 | linkgit:git-status[1] `--porcelain` and |
| 113 | linkgit:git-diff-files[1] `--name-status` are almost always |
| 114 | superior alternatives, and users should look at |
| 115 | linkgit:git-status[1] `--short` or linkgit:git-diff[1] |
| 116 | `--name-status` for more user-friendly alternatives. |
| 117 | + |
| 118 | This option identifies the file status with the following tags (followed by |
| 119 | a space) at the start of each line: |
| 120 | |
Jonas Fonseca | df8baa4 | 2005-10-03 19:16:30 +0200 | [diff] [blame] | 121 | H:: cached |
Nguyễn Thái Ngọc Duy | 44a3691 | 2009-08-20 20:46:57 +0700 | [diff] [blame] | 122 | S:: skip-worktree |
Jonas Fonseca | df8baa4 | 2005-10-03 19:16:30 +0200 | [diff] [blame] | 123 | M:: unmerged |
| 124 | R:: removed/deleted |
Junio C Hamano | 8943867 | 2005-12-29 01:20:06 -0800 | [diff] [blame] | 125 | C:: modified/changed |
Jonas Fonseca | df8baa4 | 2005-10-03 19:16:30 +0200 | [diff] [blame] | 126 | K:: to be killed |
Junio C Hamano | 41ac06c | 2006-02-13 21:52:10 -0800 | [diff] [blame] | 127 | ?:: other |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 128 | |
Junio C Hamano | f9666ad | 2006-02-12 01:48:47 -0800 | [diff] [blame] | 129 | -v:: |
| 130 | Similar to `-t`, but use lowercase letters for files |
Junio C Hamano | 56c3eb1 | 2007-12-21 13:50:58 -0800 | [diff] [blame] | 131 | that are marked as 'assume unchanged' (see |
Dan McGee | 5162e69 | 2007-12-29 00:20:38 -0600 | [diff] [blame] | 132 | linkgit:git-update-index[1]). |
Junio C Hamano | f9666ad | 2006-02-12 01:48:47 -0800 | [diff] [blame] | 133 | |
Junio C Hamano | 9a84074 | 2005-12-23 15:51:33 -0800 | [diff] [blame] | 134 | --full-name:: |
| 135 | When run from a subdirectory, the command usually |
| 136 | outputs paths relative to the current directory. This |
| 137 | option forces paths to be output relative to the project |
| 138 | top directory. |
| 139 | |
Eric Wong | ad0cae4 | 2006-03-07 11:59:17 -0800 | [diff] [blame] | 140 | --abbrev[=<n>]:: |
| 141 | Instead of showing the full 40-byte hexadecimal object |
Jon Loeliger | 323b9db | 2009-01-12 14:02:07 -0600 | [diff] [blame] | 142 | lines, show only a partial prefix. |
Eric Wong | ad0cae4 | 2006-03-07 11:59:17 -0800 | [diff] [blame] | 143 | Non default number of digits can be specified with --abbrev=<n>. |
| 144 | |
Thomas Rast | 8497421 | 2010-07-31 00:35:59 +0200 | [diff] [blame] | 145 | --debug:: |
| 146 | After each line that describes a file, add more data about its |
| 147 | cache entry. This is intended to show as much information as |
| 148 | possible for manual inspection; the exact format may change at |
| 149 | any time. |
| 150 | |
Torsten Bögershausen | a7630bd | 2016-01-16 07:50:02 +0100 | [diff] [blame] | 151 | --eol:: |
| 152 | Show <eolinfo> and <eolattr> of files. |
| 153 | <eolinfo> is the file content identification used by Git when |
| 154 | the "text" attribute is "auto" (or not set and core.autocrlf is not false). |
| 155 | <eolinfo> is either "-text", "none", "lf", "crlf", "mixed" or "". |
| 156 | + |
| 157 | "" means the file is not a regular file, it is not in the index or |
Thomas Ackermann | d285ab0 | 2016-03-03 19:43:51 +0100 | [diff] [blame] | 158 | not accessible in the working tree. |
Torsten Bögershausen | a7630bd | 2016-01-16 07:50:02 +0100 | [diff] [blame] | 159 | + |
| 160 | <eolattr> is the attribute that is used when checking out or committing, |
| 161 | it is either "", "-text", "text", "text=auto", "text eol=lf", "text eol=crlf". |
| 162 | Note: Currently Git does not support "text=auto eol=lf" or "text=auto eol=crlf", |
| 163 | that may change in the future. |
| 164 | + |
| 165 | Both the <eolinfo> in the index ("i/<eolinfo>") |
| 166 | and in the working tree ("w/<eolinfo>") are shown for regular files, |
| 167 | followed by the ("attr/<eolattr>"). |
| 168 | |
sean | e994004 | 2006-05-05 15:05:24 -0400 | [diff] [blame] | 169 | \--:: |
Fredrik Kuivinen | 500b97e | 2005-10-02 17:33:38 +0200 | [diff] [blame] | 170 | Do not interpret any more arguments as options. |
| 171 | |
| 172 | <file>:: |
| 173 | Files to show. If no files are given all files which match the other |
| 174 | specified criteria are shown. |
| 175 | |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 176 | Output |
| 177 | ------ |
Matthieu Moy | bcf9626 | 2016-06-28 13:40:11 +0200 | [diff] [blame] | 178 | 'git ls-files' just outputs the filenames unless `--stage` is specified in |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 179 | which case it outputs: |
| 180 | |
| 181 | [<tag> ]<mode> <object> <stage> <file> |
| 182 | |
Torsten Bögershausen | a7630bd | 2016-01-16 07:50:02 +0100 | [diff] [blame] | 183 | 'git ls-files --eol' will show |
| 184 | i/<eolinfo><SPACES>w/<eolinfo><SPACES>attr/<eolattr><SPACE*><TAB><file> |
| 185 | |
Thomas Rast | 0b444cd | 2010-01-10 00:33:00 +0100 | [diff] [blame] | 186 | 'git ls-files --unmerged' and 'git ls-files --stage' can be used to examine |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 187 | detailed information on unmerged paths. |
| 188 | |
Thomas Ackermann | d5fa1f1 | 2013-04-15 19:49:04 +0200 | [diff] [blame] | 189 | For an unmerged path, instead of recording a single mode/SHA-1 pair, |
Jakub Narebski | 5adf317 | 2007-05-26 00:37:40 +0200 | [diff] [blame] | 190 | the index records up to three such pairs; one from tree O in stage |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 191 | 1, A in stage 2, and B in stage 3. This information can be used by |
Johannes Schindelin | 2c6e477 | 2005-08-05 17:05:02 +0200 | [diff] [blame] | 192 | the user (or the porcelain) to see what should eventually be recorded at the |
Jonathan Nieder | 483bc4f | 2008-06-30 13:56:34 -0500 | [diff] [blame] | 193 | path. (see linkgit:git-read-tree[1] for more information on state) |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 194 | |
Junio C Hamano | d88156e | 2005-10-14 21:56:46 -0700 | [diff] [blame] | 195 | When `-z` option is not used, TAB, LF, and backslash characters |
| 196 | in pathnames are represented as `\t`, `\n`, and `\\`, |
| 197 | respectively. |
| 198 | |
Junio C Hamano | 30b0535 | 2005-07-24 15:47:26 -0700 | [diff] [blame] | 199 | |
| 200 | Exclude Patterns |
| 201 | ---------------- |
| 202 | |
Thomas Rast | 0b444cd | 2010-01-10 00:33:00 +0100 | [diff] [blame] | 203 | 'git ls-files' can use a list of "exclude patterns" when |
Junio C Hamano | 30b0535 | 2005-07-24 15:47:26 -0700 | [diff] [blame] | 204 | traversing the directory tree and finding files to show when the |
Dan McGee | 5162e69 | 2007-12-29 00:20:38 -0600 | [diff] [blame] | 205 | flags --others or --ignored are specified. linkgit:gitignore[5] |
Josh Triplett | cedb8d5 | 2007-06-02 10:08:54 -0700 | [diff] [blame] | 206 | specifies the format of exclude patterns. |
Junio C Hamano | 30b0535 | 2005-07-24 15:47:26 -0700 | [diff] [blame] | 207 | |
Josh Triplett | cedb8d5 | 2007-06-02 10:08:54 -0700 | [diff] [blame] | 208 | These exclude patterns come from these places, in order: |
Junio C Hamano | 30b0535 | 2005-07-24 15:47:26 -0700 | [diff] [blame] | 209 | |
Jason St. John | 06ab60c | 2014-05-21 14:52:26 -0400 | [diff] [blame] | 210 | 1. The command-line flag --exclude=<pattern> specifies a |
Josh Triplett | cedb8d5 | 2007-06-02 10:08:54 -0700 | [diff] [blame] | 211 | single pattern. Patterns are ordered in the same order |
| 212 | they appear in the command line. |
Junio C Hamano | 30b0535 | 2005-07-24 15:47:26 -0700 | [diff] [blame] | 213 | |
Jason St. John | 06ab60c | 2014-05-21 14:52:26 -0400 | [diff] [blame] | 214 | 2. The command-line flag --exclude-from=<file> specifies a |
Josh Triplett | cedb8d5 | 2007-06-02 10:08:54 -0700 | [diff] [blame] | 215 | file containing a list of patterns. Patterns are ordered |
| 216 | in the same order they appear in the file. |
Junio C Hamano | 30b0535 | 2005-07-24 15:47:26 -0700 | [diff] [blame] | 217 | |
Jason St. John | 06ab60c | 2014-05-21 14:52:26 -0400 | [diff] [blame] | 218 | 3. The command-line flag --exclude-per-directory=<name> specifies |
Thomas Rast | 0b444cd | 2010-01-10 00:33:00 +0100 | [diff] [blame] | 219 | a name of the file in each directory 'git ls-files' |
Josh Triplett | cedb8d5 | 2007-06-02 10:08:54 -0700 | [diff] [blame] | 220 | examines, normally `.gitignore`. Files in deeper |
| 221 | directories take precedence. Patterns are ordered in the |
| 222 | same order they appear in the files. |
Junio C Hamano | 30b0535 | 2005-07-24 15:47:26 -0700 | [diff] [blame] | 223 | |
| 224 | A pattern specified on the command line with --exclude or read |
| 225 | from the file specified with --exclude-from is relative to the |
| 226 | top of the directory tree. A pattern read from a file specified |
| 227 | by --exclude-per-directory is relative to the directory that the |
| 228 | pattern file appears in. |
| 229 | |
Junio C Hamano | 56ae8df | 2008-05-28 16:55:27 -0700 | [diff] [blame] | 230 | SEE ALSO |
David Greaves | c1bdacf | 2005-05-10 22:32:38 +0100 | [diff] [blame] | 231 | -------- |
Dan McGee | 5162e69 | 2007-12-29 00:20:38 -0600 | [diff] [blame] | 232 | linkgit:git-read-tree[1], linkgit:gitignore[5] |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 233 | |
David Greaves | 2cf565c | 2005-05-10 22:32:30 +0100 | [diff] [blame] | 234 | GIT |
| 235 | --- |
Christian Couder | 9e1f0a8 | 2008-06-06 09:07:32 +0200 | [diff] [blame] | 236 | Part of the linkgit:git[1] suite |