Code

[PATCH 1/2] core-git documentation update
[git.git] / Documentation / core-git.txt
index 36f5a9d34ea09344824ad9ff57715e99c3a6147a..7d3b09fd28790dc9a3a164d91e54cf17aa1470f3 100644 (file)
@@ -161,16 +161,16 @@ filenames. Just so that you wouldn't have a filename of "-a" causing
 problems (not possible in the above example, but get used to it in
 scripting!).
 
-The prefix ability basically makes it trivial to use git-checkout-cache as
-a "git-export as tree" function. Just read the desired tree into the
-index, and do a
+The prefix ability basically makes it trivial to use
+git-checkout-cache as an "export as tree" function. Just read the
+desired tree into the index, and do a
   
         git-checkout-cache --prefix=git-export-dir/ -a
   
-and git-checkout-cache will "git-export" the cache into the specified
+and git-checkout-cache will "export" the cache into the specified
 directory.
   
-NOTE! The final "/" is important. The git-exported name is literally just
+NOTE! The final "/" is important. The exported name is literally just
 prefixed with the specified string, so you can also do something like
   
         git-checkout-cache --prefix=.merged- Makefile
@@ -241,7 +241,7 @@ Converts old-style GIT repository to the latest.
 
 ################################################################
 git-diff-cache
-       git-diff-cache [-p] [-r] [-z] [--cached] <tree-ish>
+       git-diff-cache [-p] [-r] [-z] [-m] [--cached] <tree-ish>
 
 Compares the content and mode of the blobs found via a tree object
 with the content of the current cache and, optionally ignoring the
@@ -264,6 +264,13 @@ stat state of the file on disk.
 --cached
        do not consider the on-disk file at all
 
+-m
+
+       By default, files recorded in the index but not checked
+       out are reported as deleted.  This flag makes
+       git-diff-cache say that all non-checked-out files are up
+       to date.
+
 Output format:
 
 See "Output format from git-diff-cache, git-diff-tree and git-diff-files"
@@ -350,9 +357,36 @@ valid sha1, and the "not in sync with the index" ones will always have the
 special all-zero sha1.
 
 
+################################################################
+git-diff-files
+       git-diff-files [-p] [-q] [-r] [-z] [<pattern>...]
+
+Compares the files in the working tree and the cache.  When paths
+are specified, compares only those named paths.  Otherwise all
+entries in the cache are compared.  The output format is the
+same as git-diff-cache and git-diff-tree.
+
+-p
+       generate patch (see section on generating patches).
+
+-q
+       Remain silent even on nonexisting files
+
+-r
+       This flag does not mean anything.  It is there only to match
+       git-diff-tree.  Unlike git-diff-tree, git-diff-files always looks
+       at all the subdirectories.
+
+
+Output format:
+
+See "Output format from git-diff-cache, git-diff-tree and git-diff-files"
+section.
+
+
 ################################################################
 git-diff-tree
-       git-diff-tree [-p] [-r] [-z] <tree-ish> <tree-ish> [<pattern>]*
+       git-diff-tree [-p] [-r] [-z] [--stdin] [-m] [-s] [-v] <tree-ish> <tree-ish> [<pattern>]*
 
 Compares the content and mode of the blobs found via two tree objects.
 
@@ -378,6 +412,34 @@ Note that git-diff-tree can use the tree encapsulated in a commit object.
 -z
        \0 line termination on output
 
+--stdin
+       When --stdin is specified, the command does not take
+       <tree-ish> arguments from the command line.  Instead, it
+       reads either one <commit> or a pair of <tree-ish>
+       separated with a single space from its standard input.
+
+        When a single commit is given on one line of such input,
+        it compares the commit with its parents.  The following
+        flags further affects its behaviour.  This does not
+        apply to the case where two <tree-ish> separated with a
+        single space are given.
+
+-m
+       By default, "git-diff-tree --stdin" does not show
+       differences for merge commits.  With this flag, it shows
+       differences to that commit from all of its parents.
+
+-s
+       By default, "git-diff-tree --stdin" shows differences,
+       either in machine-readable form (without -p) or in patch
+       form (with -p).  This output can be supressed.  It is
+       only useful with -v flag.
+
+-v
+       This flag causes "git-diff-tree --stdin" to also show
+       the commit message before the differences.
+
+
 Limiting Output
 
 If you're only interested in differences in a subset of files, for
@@ -448,6 +510,14 @@ generates patch format output.
 See also the section on generating patches.
 
 
+################################################################
+git-export
+       git-export top [base]
+
+Exports each commit and diff against each of its parents, between
+top and base.  If base is not specified it exports everything.
+
+
 ################################################################
 git-fsck-cache
        git-fsck-cache [--tags] [--root] [[--unreachable] [--cache] <object>*]
@@ -544,11 +614,20 @@ GIT_INDEX_FILE
 
 
 ################################################################
-git-export
-       git-export top [base]
+git-http-pull
 
-Exports each commit and diff against each of its parents, between
-top and base.  If base is not specified it exports everything.
+       git-http-pull [-c] [-t] [-a] [-v] commit-id url
+
+Downloads a remote GIT repository via HTTP protocol.
+
+-c
+       Get the commit objects.
+-t
+       Get trees associated with the commit objects.
+-a
+       Get all the objects.
+-v
+       Report what is downloaded.
 
 
 ################################################################
@@ -566,15 +645,94 @@ git-init-db won't hurt an existing repository.
 
 
 ################################################################
-git-http-pull
+git-local-pull
 
-Downloads a remote GIT repository via HTTP protocol.
+       git-local-pull [-c] [-t] [-a] [-l] [-s] [-n] [-v] commit-id path
+
+Downloads another GIT repository on a local system.
 
+-c
+       Get the commit objects.
+-t
+       Get trees associated with the commit objects.
+-a
+       Get all the objects.
+-v
+       Report what is downloaded.
 
 ################################################################
-git-local-pull
+git-ls-files
+       git-ls-files [-z] [-t]
+               (--[cached|deleted|others|ignored|stage|unmerged])*
+               (-[c|d|o|i|s|u])*
+               [-x <pattern>|--exclude=<pattern>]
+               [-X <file>|--exclude-from=<file>]
 
-Downloads another GIT repository on a local system.
+This merges the file listing in the directory cache index with the
+actual working directory list, and shows different combinations of the
+two.
+
+One or more of the options below may be used to determine the files
+shown:
+
+-c|--cached
+       Show cached files in the output (default)
+
+-d|--deleted
+       Show deleted files in the output
+
+-o|--others
+       Show other files in the output
+
+-i|--ignored
+       Show ignored files in the output
+       Note the this also reverses any exclude list present.
+
+-s|--stage
+       Show stage files in the output
+
+-u|--unmerged
+       Show unmerged files in the output (forces --stage)
+
+-z
+       \0 line termination on output
+
+-x|--exclude=<pattern>
+       Skips files matching pattern.
+       Note that pattern is a shell wildcard pattern.
+
+-X|--exclude-from=<file>
+       exclude patterns are read from <file>; 1 per line.
+       Allows the use of the famous dontdiff file as follows to find
+       out about uncommitted files just as dontdiff is used with
+       the diff command:
+            git-ls-files --others --exclude-from=dontdiff
+
+-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
+       ?       other
+
+Output
+show files just outputs the filename unless --stage is specified in
+which case it outputs:
+
+[<tag> ]<mode> <object> <stage> <file>
+
+git-ls-files --unmerged" and "git-ls-files --stage " can be used to examine
+detailed information on unmerged paths.
+
+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)
+
+see also:
+read-cache
 
 
 ################################################################
@@ -888,9 +1046,20 @@ think.)
 ################################################################
 git-rpull
 
+       git-rpull [-c] [-t] [-a] [-v] commit-id url
+
 Pulls from a remote repository over ssh connection, invoking git-rpush on
 the other end.
 
+-c
+       Get the commit objects.
+-t
+       Get trees associated with the commit objects.
+-a
+       Get all the objects.
+-v
+       Report what is downloaded.
+
 
 ################################################################
 git-rpush
@@ -898,33 +1067,6 @@ git-rpush
 Helper "server-side" program used by git-rpull.
 
 
-################################################################
-git-diff-files
-       git-diff-files [-p] [-q] [-r] [-z] [<pattern>...]
-
-Compares the files in the working tree and the cache.  When paths
-are specified, compares only those named paths.  Otherwise all
-entries in the cache are compared.  The output format is the
-same as git-diff-cache and git-diff-tree.
-
--p
-       generate patch (see section on generating patches).
-
--q
-       Remain silent even on nonexisting files
-
--r
-       This flag does not mean anything.  It is there only to match
-       git-diff-tree.  Unlike git-diff-tree, git-diff-files always looks
-       at all the subdirectories.
-
-
-Output format:
-
-See "Output format from git-diff-cache, git-diff-tree and git-diff-files"
-section.
-
-
 ################################################################
 git-tag-script
 
@@ -942,73 +1084,6 @@ When <base> is specified it is added as a leading path as the files in the
 generated tar archive.
 
 
-################################################################
-git-ls-files
-       git-ls-files [-z] [-t]
-               (--[cached|deleted|others|ignored|stage|unmerged])*
-               (-[c|d|o|i|s|u])*
-               [-x <pattern>|--exclude=<pattern>]
-               [-X <file>|--exclude-from=<file>]
-
-This merges the file listing in the directory cache index with the
-actual working directory list, and shows different combinations of the
-two.
-
-One or more of the options below may be used to determine the files
-shown:
-
--c|--cached
-       Show cached files in the output (default)
-
--d|--deleted
-       Show deleted files in the output
-
--o|--others
-       Show other files in the output
-
--i|--ignored
-       Show ignored files in the output
-       Note the this also reverses any exclude list present.
-
--s|--stage
-       Show stage files in the output
-
--u|--unmerged
-       Show unmerged files in the output (forces --stage)
-
--z
-       \0 line termination on output
-
--x|--exclude=<pattern>
-       Skips files matching pattern.
-       Note that pattern is a shell wildcard pattern.
-
--X|--exclude-from=<file>
-       exclude patterns are read from <file>; 1 per line.
-       Allows the use of the famous dontdiff file as follows to find
-       out about uncommitted files just as dontdiff is used with
-       the diff command:
-            git-ls-files --others --exclude-from=dontdiff
-
-Output
-show files just outputs the filename unless --stage is specified in
-which case it outputs:
-
-[<tag> ]<mode> <object> <stage> <file>
-
-git-ls-files --unmerged" and "git-ls-files --stage " can be used to examine
-detailed information on unmerged paths.
-
-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)
-
-see also:
-read-cache
-
-
 ################################################################
 git-unpack-file
        git-unpack-file <blob>
@@ -1023,7 +1098,7 @@ returns the name of the temporary file in the following format:
 ################################################################
 git-update-cache
        git-update-cache
-            [--add] [--remove] [--refresh]
+            [--add] [--remove] [--refresh] [--replace]
             [--ignore-missing]
             [--force-remove <file>]
             [--cacheinfo <mode> <object> <file>]*
@@ -1060,6 +1135,14 @@ using the various options:
        Remove the file from the index even when the working directory
        still has such a file.
 
+--replace
+       By default, when a file "path" exists in the index,
+       git-update-cache refuses an attempt to add "path/file".
+       Similarly if a file "path/file" exists, a file "path"
+       cannot be added.  With --replace flag, existing entries
+       that conflicts with the entry being added are
+       automatically removed with warning messages.
+
 --
        Do not interpret any more arguments as options.