- -c
- --cached
-
Show all files cached in Git’s index, i.e. all tracked files.
(This is the default if no -c/-s/-d/-o/-u/-k/-m/--resolve-undo
options are specified.)
- -d
- --deleted
-
Show files with an unstaged deletion
- -m
- --modified
-
Show files with an unstaged modification (note that an unstaged
deletion also counts as an unstaged modification)
- -o
- --others
-
Show other (i.e. untracked) files in the output
- -i
- --ignored
-
Show only ignored files in the output. Must be used with
either an explicit -c or -o. When showing files in the
index (i.e. when used with -c), print only those files
matching an exclude pattern. When showing "other" files
(i.e. when used with -o), show only those matched by an
exclude pattern. Standard ignore rules are not automatically
activated; therefore, at least one of the --exclude* options
is required.
- -s
- --stage
-
Show staged contents' mode bits, object name and stage number in the output.
- --directory
-
If a whole directory is classified as "other", show just its
name (with a trailing slash) and not its whole contents.
Has no effect without -o/--others.
- --no-empty-directory
-
Do not list empty directories. Has no effect without --directory.
- -u
- --unmerged
-
Show information about unmerged files in the output, but do
not show any other tracked files (forces --stage, overrides
--cached).
- -k
- --killed
-
Show untracked files on the filesystem that need to be removed
due to file/directory conflicts for tracked files to be able to
be written to the filesystem.
- --resolve-undo
-
Show files having resolve-undo information in the index
together with their resolve-undo information. (resolve-undo
information is what is used to implement "git checkout -m
$PATH", i.e. to recreate merge conflicts that were
accidentally resolved)
- -z
-
\0 line termination on output and do not quote filenames.
See OUTPUT below for more information.
- --deduplicate
-
When only filenames are shown, suppress duplicates that may
come from having multiple stages during a merge, or giving
--deleted and --modified option at the same time.
When any of the -t, --unmerged, or --stage option is
in use, this option has no effect.
- -x <pattern>
- --exclude=<pattern>
-
Skip untracked files matching pattern.
Note that pattern is a shell wildcard pattern. See EXCLUDE PATTERNS
below for more information.
- -X <file>
- --exclude-from=<file>
-
Read exclude patterns from <file>; 1 per line.
- --exclude-per-directory=<file>
-
Read additional exclude patterns that apply only to the
directory and its subdirectories in <file>. If you are
trying to emulate the way Porcelain commands work, using
the --exclude-standard option instead is easier and more
thorough.
- --exclude-standard
-
Add the standard Git exclusions: .git/info/exclude, .gitignore
in each directory, and the user’s global exclusion file.
- --error-unmatch
-
If any <file> does not appear in the index, treat this as an
error (return 1).
- --with-tree=<tree-ish>
-
When using --error-unmatch to expand the user supplied
<file> (i.e. path pattern) arguments to paths, pretend
that paths which were removed in the index since the
named <tree-ish> are still present. Using this option
with -s or -u options does not make any sense.
- -t
-
Show status tags together with filenames. Note that for
scripting purposes, git-status[1] --porcelain and
git-diff-files[1] --name-status are almost always
superior alternatives; users should look at
git-status[1] --short or git-diff[1]
--name-status for more user-friendly alternatives.
This option provides a reason for showing each filename, in the form
of a status tag (which is followed by a space and then the filename).
The status tags are all single characters from the following list:
- H
-
tracked file that is not either unmerged or skip-worktree
- S
-
tracked file that is skip-worktree
- M
-
tracked file that is unmerged
- R
-
tracked file with unstaged removal/deletion
- C
-
tracked file with unstaged modification/change
- K
-
untracked paths which are part of file/directory conflicts
which prevent checking out tracked files
- ?
-
untracked file
- U
-
file with resolve-undo information
- -v
-
Similar to -t, but use lowercase letters for files
that are marked as assume unchanged (see
git-update-index[1]).
- -f
-
Similar to -t, but use lowercase letters for files
that are marked as fsmonitor valid (see
git-update-index[1]).
- --full-name
-
When run from a subdirectory, the command usually
outputs paths relative to the current directory. This
option forces paths to be output relative to the project
top directory.
- --recurse-submodules
-
Recursively calls ls-files on each active submodule in the repository.
Currently there is only support for the --cached and --stage modes.
- --abbrev[=<n>]
-
Instead of showing the full 40-byte hexadecimal object
lines, show the shortest prefix that is at least <n>
hexdigits long that uniquely refers the object.
Non default number of digits can be specified with --abbrev=<n>.
- --debug
-
After each line that describes a file, add more data about its
cache entry. This is intended to show as much information as
possible for manual inspection; the exact format may change at
any time.
- --eol
-
Show <eolinfo> and <eolattr> of files.
<eolinfo> is the file content identification used by Git when
the "text" attribute is "auto" (or not set and core.autocrlf is not false).
<eolinfo> is either "-text", "none", "lf", "crlf", "mixed" or "".
"" means the file is not a regular file, it is not in the index or
not accessible in the working tree.
<eolattr> is the attribute that is used when checking out or committing,
it is either "", "-text", "text", "text=auto", "text eol=lf", "text eol=crlf".
Since Git 2.10 "text=auto eol=lf" and "text=auto eol=crlf" are supported.
Both the <eolinfo> in the index ("i/<eolinfo>")
and in the working tree ("w/<eolinfo>") are shown for regular files,
followed by the ("attr/<eolattr>").
- --sparse
-
If the index is sparse, show the sparse directories without expanding
to the contained files. Sparse directories will be shown with a
trailing slash, such as "x/" for a sparse directory "x".
- --format=<format>
-
A string that interpolates %(fieldname) from the result being shown.
It also interpolates %% to %, and %xXX where XX are hex digits
interpolates to character with hex code XX; for example %x00
interpolates to \0 (NUL), %x09 to \t (TAB) and %x0a to \n (LF).
--format cannot be combined with -s, -o, -k, -t, --resolve-undo
and --eol.
- --
-
Do not interpret any more arguments as options.
- <file>
-
Files to show. If no files are given all files which match the other
specified criteria are shown.