git-rm: Documentation
[gitweb.git] / Documentation / git-ls-files.txt
index fe5341295c55af55d521454ac5ae98b225f1eb32..8520b971111e8b015ac3d08b207a3ab37505ccca 100644 (file)
@@ -8,13 +8,15 @@ git-ls-files - Information about files in the index/working directory
 
 SYNOPSIS
 --------
-'git-ls-files' [-z] [-t]
+[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>] 
-               [--full-name] [--] [<file>]\*
+               [--exclude-per-directory=<file>]
+               [--error-unmatch]
+               [--full-name] [--abbrev] [--] [<file>]\*
 
 DESCRIPTION
 -----------
@@ -50,6 +52,9 @@ OPTIONS
        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)
 
@@ -72,6 +77,10 @@ OPTIONS
        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:
@@ -82,13 +91,22 @@ OPTIONS
        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>::
@@ -177,8 +195,7 @@ An exclude pattern is of the following format:
 
  - if it does not contain a slash '/', it is a shell glob
    pattern and used to match against the filename without
-   leading directories (i.e. the same way as the current
-   implementation).
+   leading directories.
 
  - otherwise, it is a shell glob pattern, suitable for
    consumption by fnmatch(3) with FNM_PATHNAME flag.  I.e. a
@@ -190,7 +207,7 @@ An exclude pattern is of the following format:
 An example:
 
 --------------------------------------------------------------
-    $ cat .git/ignore
+    $ cat .git/info/exclude
     # ignore objects and archives, anywhere in the tree.
     *.[oa]
     $ cat Documentation/.gitignore
@@ -200,10 +217,23 @@ An example:
     !foo.html
     $ git-ls-files --ignored \
         --exclude='Documentation/*.[0-9]' \
-        --exclude-from=.git/ignore \
+        --exclude-from=.git/info/exclude \
         --exclude-per-directory=.gitignore
 --------------------------------------------------------------
 
+Another example:
+
+--------------------------------------------------------------
+    $ cat .gitignore
+    vmlinux*
+    $ ls arch/foo/kernel/vm*
+    arch/foo/kernel/vmlinux.lds.S
+    $ echo '!/vmlinux*' >arch/foo/kernel/.gitignore
+--------------------------------------------------------------
+
+The second .gitignore keeps `arch/foo/kernel/vmlinux.lds.S` file
+from getting ignored.
+
 
 See Also
 --------