git-ls-files(1)
===============
-v0.1, May 2005
NAME
----
-git-ls-files - Information about files in the cache/working directory
+git-ls-files - Information about files in the index/working directory
SYNOPSIS
--------
-'git-ls-files' [-z] [-t]
- (--[cached|deleted|others|ignored|stage|unmerged|killed])\*
- (-[c|d|o|i|s|u|k])\*
+[verse]
+'git-ls-files' [-z] [-t] [-v]
+ (--[cached|deleted|others|ignored|stage|unmerged|killed|modified])\*
+ (-[c|d|o|i|s|u|k|m])\*
[-x <pattern>|--exclude=<pattern>]
[-X <file>|--exclude-from=<file>]
[--exclude-per-directory=<file>]
+ [--error-unmatch]
+ [--full-name] [--abbrev] [--] [<file>]\*
DESCRIPTION
-----------
-d|--deleted::
Show deleted files in the output
+-m|--modified::
+ Show modified files in the output
+
-o|--others::
Show other files in the output
-s|--stage::
Show stage files 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.
+
+--no-empty-directory::
+ Do not list empty directories. Has no effect without --directory.
+
-u|--unmerged::
Show unmerged files in the output (forces --stage)
-k|--killed::
Show files on the filesystem that need to be removed due
- to file/directory conflicts for checkout-cache to
+ to file/directory conflicts for checkout-index to
succeed.
-z::
- \0 line termination on output
+ \0 line termination on output.
-x|--exclude=<pattern>::
Skips files matching pattern.
read additional exclude patterns that apply only to the
directory and its subdirectories in <file>.
+--error-unmatch::
+ If any <file> does not appear in the index, treat this as an
+ error (return 1).
+
-t::
Identify the file status with the following tags (followed by
a space) at the start of each line:
- H cached
- M unmerged
- R removed/deleted
- K to be killed
- ? other
+ H:: cached
+ M:: unmerged
+ R:: removed/deleted
+ C:: modified/changed
+ K:: to be killed
+ ?:: other
+
+-v::
+ Similar to `-t`, but use lowercase letters for files
+ that are marked as 'always matching index'.
+
+--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.
+
+--abbrev[=<n>]::
+ Instead of showing the full 40-byte hexadecimal object
+ lines, show only handful hexdigits prefix.
+ Non default number of digits can be specified with --abbrev=<n>.
+
+--::
+ 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.
Output
------
For an unmerged path, instead of recording a single mode/SHA1 pair,
the dircache records up to three such pairs; one from tree O in stage
1, A in stage 2, and B in stage 3. This information can be used by
-the user (or Cogito) to see what should eventually be recorded at the
-path. (see read-cache for more information on state)
+the user (or the porcelain) to see what should eventually be recorded at the
+path. (see git-read-tree for more information on state)
+
+When `-z` option is not used, TAB, LF, and backslash characters
+in pathnames are represented as `\t`, `\n`, and `\\`,
+respectively.
Exclude Patterns
These exclude patterns come from these places:
- (1) command line flag --exclude=<pattern> specifies a single
+ 1. command line flag --exclude=<pattern> specifies a single
pattern.
- (2) command line flag --exclude-from=<file> specifies a list of
+ 2. command line flag --exclude-from=<file> specifies a list of
patterns stored in a file.
- (3) command line flag --exclude-per-directory=<name> specifies
+ 3. command line flag --exclude-per-directory=<name> specifies
a name of the file in each directory 'git-ls-files'
examines, and if exists, its contents are used as an
additional list of patterns.
are popped off when leaving the directory.
Each pattern in the pattern list specifies "a match pattern" and
-optionally the fate;n either a file that matches the pattern is
+optionally the fate; either a file that matches the pattern is
considered excluded or included. A filename is matched against
the patterns in the three lists; the --exclude-from list is
checked first, then the --exclude-per-directory list, and then
- otherwise, it is a shell glob pattern, suitable for
consumption by fnmatch(3) with FNM_PATHNAME flag. I.e. a
slash in the pattern must match a slash in the pathname.
- "Documentation/*.html" matches "Documentation/git.html" but
+ "Documentation/\*.html" matches "Documentation/git.html" but
not "ppc/ppc.html". As a natural exception, "/*.c" matches
"cat-file.c" but not "mozilla-sha1/sha1.c".
An example:
+--------------------------------------------------------------
$ cat .git/ignore
# ignore objects and archives, anywhere in the tree.
*.[oa]
--exclude='Documentation/*.[0-9]' \
--exclude-from=.git/ignore \
--exclude-per-directory=.gitignore
+--------------------------------------------------------------
See Also
--------
-link:read-cache.html[read-cache]
+gitlink:git-read-tree[1]
Author
GIT
---
-Part of the link:git.html[git] suite
+Part of the gitlink:git[7] suite