'\" t
.\" Title: git-ls-files
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
.\" Date: 01/13/2023
.\" Manual: Git Manual
.\" Source: Git 2.39.1
.\" Language: English
.\"
.TH "GIT\-LS\-FILES" "1" "01/13/2023" "Git 2\&.39\&.1" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
git-ls-files \- Show information about files in the index and the working tree
.SH "SYNOPSIS"
.sp
.nf
\fIgit ls\-files\fR [\-z] [\-t] [\-v] [\-f]
[\-c|\-\-cached] [\-d|\-\-deleted] [\-o|\-\-others] [\-i|\-\-ignored]
[\-s|\-\-stage] [\-u|\-\-unmerged] [\-k|\-\-killed] [\-m|\-\-modified]
[\-\-directory [\-\-no\-empty\-directory]] [\-\-eol]
[\-\-deduplicate]
[\-x |\-\-exclude=]
[\-X |\-\-exclude\-from=]
[\-\-exclude\-per\-directory=]
[\-\-exclude\-standard]
[\-\-error\-unmatch] [\-\-with\-tree=]
[\-\-full\-name] [\-\-recurse\-submodules]
[\-\-abbrev[=]] [\-\-format=] [\-\-] [\&...]
.fi
.sp
.SH "DESCRIPTION"
.sp
This merges the file listing in the index with the actual working directory list, and shows different combinations of the two\&.
.sp
One or more of the options below may be used to determine the files shown:
.SH "OPTIONS"
.PP
\-c, \-\-cached
.RS 4
Show cached files in the output (default)
.RE
.PP
\-d, \-\-deleted
.RS 4
Show deleted files in the output
.RE
.PP
\-m, \-\-modified
.RS 4
Show modified files in the output
.RE
.PP
\-o, \-\-others
.RS 4
Show other (i\&.e\&. untracked) files in the output
.RE
.PP
\-i, \-\-ignored
.RS 4
Show only ignored files in the output\&. When showing files in the index, print only those matched by an exclude pattern\&. When showing "other" files, show only those matched by an exclude pattern\&. Standard ignore rules are not automatically activated, therefore at least one of the
\fB\-\-exclude*\fR
options is required\&.
.RE
.PP
\-s, \-\-stage
.RS 4
Show staged contents\*(Aq mode bits, object name and stage number in the output\&.
.RE
.PP
\-\-directory
.RS 4
If a whole directory is classified as "other", show just its name (with a trailing slash) and not its whole contents\&.
.RE
.PP
\-\-no\-empty\-directory
.RS 4
Do not list empty directories\&. Has no effect without \-\-directory\&.
.RE
.PP
\-u, \-\-unmerged
.RS 4
Show unmerged files in the output (forces \-\-stage)
.RE
.PP
\-k, \-\-killed
.RS 4
Show files on the filesystem that need to be removed due to file/directory conflicts for checkout\-index to succeed\&.
.RE
.PP
\-z
.RS 4
\e0 line termination on output and do not quote filenames\&. See OUTPUT below for more information\&.
.RE
.PP
\-\-deduplicate
.RS 4
When only filenames are shown, suppress duplicates that may come from having multiple stages during a merge, or giving
\fB\-\-deleted\fR
and
\fB\-\-modified\fR
option at the same time\&. When any of the
\fB\-t\fR,
\fB\-\-unmerged\fR, or
\fB\-\-stage\fR
option is in use, this option has no effect\&.
.RE
.PP
\-x , \-\-exclude=
.RS 4
Skip untracked files matching pattern\&. Note that pattern is a shell wildcard pattern\&. See EXCLUDE PATTERNS below for more information\&.
.RE
.PP
\-X , \-\-exclude\-from=
.RS 4
Read exclude patterns from ; 1 per line\&.
.RE
.PP
\-\-exclude\-per\-directory=
.RS 4
Read additional exclude patterns that apply only to the directory and its subdirectories in \&.
.RE
.PP
\-\-exclude\-standard
.RS 4
Add the standard Git exclusions: \&.git/info/exclude, \&.gitignore in each directory, and the user\(cqs global exclusion file\&.
.RE
.PP
\-\-error\-unmatch
.RS 4
If any does not appear in the index, treat this as an error (return 1)\&.
.RE
.PP
\-\-with\-tree=
.RS 4
When using \-\-error\-unmatch to expand the user supplied (i\&.e\&. path pattern) arguments to paths, pretend that paths which were removed in the index since the named are still present\&. Using this option with
\fB\-s\fR
or
\fB\-u\fR
options does not make any sense\&.
.RE
.PP
\-t
.RS 4
This feature is semi\-deprecated\&. For scripting purpose,
\fBgit-status\fR(1)
\fB\-\-porcelain\fR
and
\fBgit-diff-files\fR(1)
\fB\-\-name\-status\fR
are almost always superior alternatives, and users should look at
\fBgit-status\fR(1)
\fB\-\-short\fR
or
\fBgit-diff\fR(1)
\fB\-\-name\-status\fR
for more user\-friendly alternatives\&.
.sp
This option identifies the file status with the following tags (followed by a space) at the start of each line:
.PP
H
.RS 4
cached
.RE
.PP
S
.RS 4
skip\-worktree
.RE
.PP
M
.RS 4
unmerged
.RE
.PP
R
.RS 4
removed/deleted
.RE
.PP
C
.RS 4
modified/changed
.RE
.PP
K
.RS 4
to be killed
.RE
.PP
?
.RS 4
other
.RE
.RE
.PP
\-v
.RS 4
Similar to
\fB\-t\fR, but use lowercase letters for files that are marked as
\fIassume unchanged\fR
(see
\fBgit-update-index\fR(1))\&.
.RE
.PP
\-f
.RS 4
Similar to
\fB\-t\fR, but use lowercase letters for files that are marked as
\fIfsmonitor valid\fR
(see
\fBgit-update-index\fR(1))\&.
.RE
.PP
\-\-full\-name
.RS 4
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\&.
.RE
.PP
\-\-recurse\-submodules
.RS 4
Recursively calls ls\-files on each active submodule in the repository\&. Currently there is only support for the \-\-cached and \-\-stage modes\&.
.RE
.PP
\-\-abbrev[=]
.RS 4
Instead of showing the full 40\-byte hexadecimal object lines, show the shortest prefix that is at least
\fI\fR
hexdigits long that uniquely refers the object\&. Non default number of digits can be specified with \-\-abbrev=\&.
.RE
.PP
\-\-debug
.RS 4
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\&.
.RE
.PP
\-\-eol
.RS 4
Show and of files\&. is the file content identification used by Git when the "text" attribute is "auto" (or not set and core\&.autocrlf is not false)\&. is either "\-text", "none", "lf", "crlf", "mixed" or ""\&.
.sp
"" means the file is not a regular file, it is not in the index or not accessible in the working tree\&.
.sp
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\&.
.sp
Both the in the index ("i/") and in the working tree ("w/") are shown for regular files, followed by the ("attr/")\&.
.RE
.PP
\-\-sparse
.RS 4
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"\&.
.RE
.PP
\-\-format=
.RS 4
A string that interpolates
\fB%(fieldname)\fR
from the result being shown\&. It also interpolates
\fB%%\fR
to
\fB%\fR, and
\fB%xx\fR
where
\fBxx\fR
are hex digits interpolates to character with hex code
\fBxx\fR; for example
\fB%00\fR
interpolates to
\fB\e0\fR
(NUL),
\fB%09\fR
to
\fB\et\fR
(TAB) and %0a to
\fB\en\fR
(LF)\&. \-\-format cannot be combined with
\fB\-s\fR,
\fB\-o\fR,
\fB\-k\fR,
\fB\-t\fR,
\fB\-\-resolve\-undo\fR
and
\fB\-\-eol\fR\&.
.RE
.PP
\-\-
.RS 4
Do not interpret any more arguments as options\&.
.RE
.PP
.RS 4
Files to show\&. If no files are given all files which match the other specified criteria are shown\&.
.RE
.SH "OUTPUT"
.sp
\fIgit ls\-files\fR just outputs the filenames unless \fB\-\-stage\fR is specified in which case it outputs:
.sp
.if n \{\
.RS 4
.\}
.nf
[ ]