| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 1 | git-ls-files(1) | 
|  | 2 | =============== | 
|  | 3 |  | 
|  | 4 | NAME | 
|  | 5 | ---- | 
| Junio C Hamano | 7c73c66 | 2007-01-19 00:37:50 | [diff] [blame] | 6 | git-ls-files - Show information about files in the index and the working tree | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 7 |  | 
|  | 8 |  | 
|  | 9 | SYNOPSIS | 
|  | 10 | -------- | 
| Junio C Hamano | 7e9f6b7 | 2006-02-22 10:44:55 | [diff] [blame] | 11 | [verse] | 
| Junio C Hamano | fce7c7e | 2008-07-02 03:06:38 | [diff] [blame] | 12 | 'git ls-files' [-z] [-t] [-v] | 
| Junio C Hamano | 2db3e75 | 2010-09-03 21:33:06 | [diff] [blame] | 13 | (--[cached|deleted|others|ignored|stage|unmerged|killed|modified])* | 
|  | 14 | (-[c|d|o|i|s|u|k|m])* | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 15 | [-x <pattern>|--exclude=<pattern>] | 
|  | 16 | [-X <file>|--exclude-from=<file>] | 
| Junio C Hamano | 5c3957e | 2006-03-28 00:28:01 | [diff] [blame] | 17 | [--exclude-per-directory=<file>] | 
| Junio C Hamano | ff97979 | 2007-11-16 10:11:30 | [diff] [blame] | 18 | [--exclude-standard] | 
| Junio C Hamano | 58155b4 | 2007-09-15 07:46:14 | [diff] [blame] | 19 | [--error-unmatch] [--with-tree=<tree-ish>] | 
| Junio C Hamano | d2179ef | 2010-10-22 04:12:17 | [diff] [blame^] | 20 | [--full-name] [--abbrev] [--] [<file>...] | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 21 |  | 
|  | 22 | DESCRIPTION | 
|  | 23 | ----------- | 
|  | 24 | This merges the file listing in the directory cache index with the | 
|  | 25 | actual working directory list, and shows different combinations of the | 
|  | 26 | two. | 
|  | 27 |  | 
|  | 28 | One or more of the options below may be used to determine the files | 
|  | 29 | shown: | 
|  | 30 |  | 
|  | 31 | OPTIONS | 
|  | 32 | ------- | 
| Junio C Hamano | eb41599 | 2008-06-08 22:49:47 | [diff] [blame] | 33 | -c:: | 
|  | 34 | --cached:: | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 35 | Show cached files in the output (default) | 
|  | 36 |  | 
| Junio C Hamano | eb41599 | 2008-06-08 22:49:47 | [diff] [blame] | 37 | -d:: | 
|  | 38 | --deleted:: | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 39 | Show deleted files in the output | 
|  | 40 |  | 
| Junio C Hamano | eb41599 | 2008-06-08 22:49:47 | [diff] [blame] | 41 | -m:: | 
|  | 42 | --modified:: | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 43 | Show modified files in the output | 
|  | 44 |  | 
| Junio C Hamano | eb41599 | 2008-06-08 22:49:47 | [diff] [blame] | 45 | -o:: | 
|  | 46 | --others:: | 
| Junio C Hamano | 31cca16 | 2009-08-07 05:40:01 | [diff] [blame] | 47 | Show other (i.e. untracked) files in the output | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 48 |  | 
| Junio C Hamano | eb41599 | 2008-06-08 22:49:47 | [diff] [blame] | 49 | -i:: | 
|  | 50 | --ignored:: | 
| Junio C Hamano | 446ed77 | 2009-11-10 22:02:20 | [diff] [blame] | 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. | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 55 |  | 
| Junio C Hamano | eb41599 | 2008-06-08 22:49:47 | [diff] [blame] | 56 | -s:: | 
|  | 57 | --stage:: | 
| Junio C Hamano | 90ccff3 | 2008-07-29 08:17:24 | [diff] [blame] | 58 | Show staged contents' object name, mode bits and stage number in the output. | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 59 |  | 
| Junio C Hamano | a6331a8 | 2006-01-22 07:50:33 | [diff] [blame] | 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 |  | 
| Junio C Hamano | f02e09f | 2006-03-27 07:51:03 | [diff] [blame] | 64 | --no-empty-directory:: | 
|  | 65 | Do not list empty directories. Has no effect without --directory. | 
|  | 66 |  | 
| Junio C Hamano | eb41599 | 2008-06-08 22:49:47 | [diff] [blame] | 67 | -u:: | 
|  | 68 | --unmerged:: | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 69 | Show unmerged files in the output (forces --stage) | 
|  | 70 |  | 
| Junio C Hamano | eb41599 | 2008-06-08 22:49:47 | [diff] [blame] | 71 | -k:: | 
|  | 72 | --killed:: | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 73 | Show files on the filesystem that need to be removed due | 
|  | 74 | to file/directory conflicts for checkout-index to | 
|  | 75 | succeed. | 
|  | 76 |  | 
|  | 77 | -z:: | 
|  | 78 | \0 line termination on output. | 
|  | 79 |  | 
| Junio C Hamano | eb41599 | 2008-06-08 22:49:47 | [diff] [blame] | 80 | -x <pattern>:: | 
|  | 81 | --exclude=<pattern>:: | 
| Junio C Hamano | ac752fa | 2010-09-19 00:01:00 | [diff] [blame] | 82 | Skip untracked files matching pattern. | 
|  | 83 | Note that pattern is a shell wildcard pattern. See EXCLUDE PATTERNS | 
|  | 84 | below for more information. | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 85 |  | 
| Junio C Hamano | eb41599 | 2008-06-08 22:49:47 | [diff] [blame] | 86 | -X <file>:: | 
|  | 87 | --exclude-from=<file>:: | 
| Junio C Hamano | ac752fa | 2010-09-19 00:01:00 | [diff] [blame] | 88 | Read exclude patterns from <file>; 1 per line. | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 89 |  | 
|  | 90 | --exclude-per-directory=<file>:: | 
| Junio C Hamano | ac752fa | 2010-09-19 00:01:00 | [diff] [blame] | 91 | Read additional exclude patterns that apply only to the | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 92 | directory and its subdirectories in <file>. | 
|  | 93 |  | 
| Junio C Hamano | ff97979 | 2007-11-16 10:11:30 | [diff] [blame] | 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 |  | 
| Junio C Hamano | 7e9f6b7 | 2006-02-22 10:44:55 | [diff] [blame] | 98 | --error-unmatch:: | 
|  | 99 | If any <file> does not appear in the index, treat this as an | 
|  | 100 | error (return 1). | 
|  | 101 |  | 
| Junio C Hamano | 58155b4 | 2007-09-15 07:46:14 | [diff] [blame] | 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 |  | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 109 | -t:: | 
| Junio C Hamano | a978876 | 2010-08-03 15:15:54 | [diff] [blame] | 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 | + | 
|  | 117 | This option identifies the file status with the following tags (followed by | 
|  | 118 | a space) at the start of each line: | 
|  | 119 |  | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 120 | H::	cached | 
| Junio C Hamano | 3c8d670 | 2010-01-13 23:09:03 | [diff] [blame] | 121 | S::	skip-worktree | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 122 | M::	unmerged | 
|  | 123 | R::	removed/deleted | 
| Junio C Hamano | 235a91e | 2006-01-07 01:13:58 | [diff] [blame] | 124 | C::	modified/changed | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 125 | K::	to be killed | 
| Junio C Hamano | 6697ac5 | 2006-02-14 08:00:23 | [diff] [blame] | 126 | ?::	other | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 127 |  | 
| Junio C Hamano | 7e9f6b7 | 2006-02-22 10:44:55 | [diff] [blame] | 128 | -v:: | 
|  | 129 | Similar to `-t`, but use lowercase letters for files | 
| Junio C Hamano | f556fc2 | 2007-12-23 08:16:38 | [diff] [blame] | 130 | that are marked as 'assume unchanged' (see | 
| Junio C Hamano | 35738e8 | 2008-01-07 07:55:46 | [diff] [blame] | 131 | linkgit:git-update-index[1]). | 
| Junio C Hamano | 7e9f6b7 | 2006-02-22 10:44:55 | [diff] [blame] | 132 |  | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 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 |  | 
| Junio C Hamano | 5c3957e | 2006-03-28 00:28:01 | [diff] [blame] | 139 | --abbrev[=<n>]:: | 
|  | 140 | Instead of showing the full 40-byte hexadecimal object | 
| Junio C Hamano | 6efe302 | 2009-01-13 16:47:56 | [diff] [blame] | 141 | lines, show only a partial prefix. | 
| Junio C Hamano | 5c3957e | 2006-03-28 00:28:01 | [diff] [blame] | 142 | Non default number of digits can be specified with --abbrev=<n>. | 
|  | 143 |  | 
| Junio C Hamano | a978876 | 2010-08-03 15:15:54 | [diff] [blame] | 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 |  | 
| Junio C Hamano | 1bb569e | 2006-05-05 23:14:25 | [diff] [blame] | 150 | \--:: | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 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 |  | 
|  | 157 | Output | 
|  | 158 | ------ | 
| Junio C Hamano | d0d892c | 2010-01-24 20:06:29 | [diff] [blame] | 159 | 'git ls-files' just outputs the filenames unless '--stage' is specified in | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 160 | which case it outputs: | 
|  | 161 |  | 
|  | 162 | [<tag> ]<mode> <object> <stage> <file> | 
|  | 163 |  | 
| Junio C Hamano | 1aa40d2 | 2010-01-21 17:46:43 | [diff] [blame] | 164 | 'git ls-files --unmerged' and 'git ls-files --stage' can be used to examine | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 165 | detailed information on unmerged paths. | 
|  | 166 |  | 
|  | 167 | For an unmerged path, instead of recording a single mode/SHA1 pair, | 
| Junio C Hamano | 3646098 | 2007-05-27 04:29:12 | [diff] [blame] | 168 | the index records up to three such pairs; one from tree O in stage | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 169 | 1, A in stage 2, and B in stage 3. This information can be used by | 
|  | 170 | the user (or the porcelain) to see what should eventually be recorded at the | 
| Junio C Hamano | fce7c7e | 2008-07-02 03:06:38 | [diff] [blame] | 171 | path. (see linkgit:git-read-tree[1] for more information on state) | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 172 |  | 
|  | 173 | When `-z` option is not used, TAB, LF, and backslash characters | 
|  | 174 | in pathnames are represented as `\t`, `\n`, and `\\`, | 
|  | 175 | respectively. | 
|  | 176 |  | 
|  | 177 |  | 
|  | 178 | Exclude Patterns | 
|  | 179 | ---------------- | 
|  | 180 |  | 
| Junio C Hamano | 1aa40d2 | 2010-01-21 17:46:43 | [diff] [blame] | 181 | 'git ls-files' can use a list of "exclude patterns" when | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 182 | traversing the directory tree and finding files to show when the | 
| Junio C Hamano | 35738e8 | 2008-01-07 07:55:46 | [diff] [blame] | 183 | flags --others or --ignored are specified. linkgit:gitignore[5] | 
| Junio C Hamano | 679d22d | 2007-06-02 21:13:44 | [diff] [blame] | 184 | specifies the format of exclude patterns. | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 185 |  | 
| Junio C Hamano | 679d22d | 2007-06-02 21:13:44 | [diff] [blame] | 186 | These exclude patterns come from these places, in order: | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 187 |  | 
| Junio C Hamano | 679d22d | 2007-06-02 21:13:44 | [diff] [blame] | 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. | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 191 |  | 
| Junio C Hamano | 679d22d | 2007-06-02 21:13:44 | [diff] [blame] | 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. | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 195 |  | 
| Junio C Hamano | ac752fa | 2010-09-19 00:01:00 | [diff] [blame] | 196 | 3. The command line flag --exclude-per-directory=<name> specifies | 
| Junio C Hamano | 1aa40d2 | 2010-01-21 17:46:43 | [diff] [blame] | 197 | a name of the file in each directory 'git ls-files' | 
| Junio C Hamano | 679d22d | 2007-06-02 21:13:44 | [diff] [blame] | 198 | examines, normally `.gitignore`. Files in deeper | 
|  | 199 | directories take precedence. Patterns are ordered in the | 
|  | 200 | same order they appear in the files. | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 201 |  | 
|  | 202 | A pattern specified on the command line with --exclude or read | 
|  | 203 | from the file specified with --exclude-from is relative to the | 
|  | 204 | top of the directory tree. A pattern read from a file specified | 
|  | 205 | by --exclude-per-directory is relative to the directory that the | 
|  | 206 | pattern file appears in. | 
|  | 207 |  | 
| Junio C Hamano | 9049d91 | 2008-05-29 02:09:50 | [diff] [blame] | 208 | SEE ALSO | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 209 | -------- | 
| Junio C Hamano | 35738e8 | 2008-01-07 07:55:46 | [diff] [blame] | 210 | linkgit:git-read-tree[1], linkgit:gitignore[5] | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 211 |  | 
|  | 212 |  | 
|  | 213 | Author | 
|  | 214 | ------ | 
|  | 215 | Written by Linus Torvalds <torvalds@osdl.org> | 
|  | 216 |  | 
|  | 217 | Documentation | 
|  | 218 | -------------- | 
| Junio C Hamano | 679d22d | 2007-06-02 21:13:44 | [diff] [blame] | 219 | Documentation by David Greaves, Junio C Hamano, Josh Triplett, and the git-list <git@vger.kernel.org>. | 
| Junio C Hamano | 1a4e841 | 2005-12-27 08:17:23 | [diff] [blame] | 220 |  | 
|  | 221 | GIT | 
|  | 222 | --- | 
| Junio C Hamano | f7c042d | 2008-06-06 22:50:53 | [diff] [blame] | 223 | Part of the linkgit:git[1] suite |