commit: use generations in paint_down_to_common()
[gitweb.git] / Documentation / git-read-tree.txt
index 5375549820bd6b9fecf3540b1e60ae50e74da0e6..f2a07d54d694b42657aa38e71dc0eeb5fc94e9a0 100644 (file)
@@ -57,7 +57,7 @@ OPTIONS
 -n::
 --dry-run::
        Check if the command would error out, without updating the index
-       nor the files in the working tree for real.
+       or the files in the working tree for real.
 
 -v::
        Show the progress of checking files out.
@@ -81,13 +81,11 @@ OPTIONS
 * when both sides add a path identically.  The resolution
   is to add that path.
 
---prefix=<prefix>/::
+--prefix=<prefix>::
        Keep the current index contents, and read the contents
-       of the named tree-ish under the directory at `<prefix>`. The
-       original index file cannot have anything at the path
-       `<prefix>` itself, nor anything in the `<prefix>/`
-       directory.  Note that the `<prefix>/` value must end
-       with a slash.
+       of the named tree-ish under the directory at `<prefix>`.
+       The command will refuse to overwrite entries that already
+       existed in the original index file.
 
 --exclude-per-directory=<gitignore>::
        When running the command with `-u` and `-m` options, the
@@ -116,6 +114,12 @@ OPTIONS
        directories the index file and index output file are
        located in.
 
+--[no-]recurse-submodules::
+       Using --recurse-submodules will update the content of all initialized
+       submodules according to the commit recorded in the superproject by
+       calling read-tree recursively, also setting the submodules HEAD to be
+       detached at that commit.
+
 --no-sparse-checkout::
        Disable sparse checkout support even if `core.sparseCheckout`
        is true.
@@ -132,7 +136,7 @@ Merging
 -------
 If `-m` is specified, 'git read-tree' can perform 3 kinds of
 merge, a single tree merge if only 1 tree is given, a
-fast-forward merge with 2 trees, or a 3-way merge if 3 trees are
+fast-forward merge with 2 trees, or a 3-way merge if 3 or more trees are
 provided.
 
 
@@ -174,6 +178,7 @@ Here are the "carry forward" rules, where "I" denotes the index,
 "clean" means that index and work tree coincide, and "exists"/"nothing"
 refer to the presence of a path in the specified commit:
 
+....
        I                   H        M        Result
        -------------------------------------------------------
      0  nothing             nothing  nothing  (does not happen)
@@ -212,6 +217,7 @@ refer to the presence of a path in the specified commit:
      19 no    no    yes     exists   exists   keep index
      20 yes   yes   no      exists   exists   use M
      21 no    yes   no      exists   exists   fail
+....
 
 In all "keep index" cases, the index entry stays as in the
 original index file.  If the entry is not up to date,
@@ -284,7 +290,7 @@ merge. The different stages represent the "result tree" (stage 0, aka
 you are trying to merge (stage 2 and 3 respectively).
 
 The order of stages 1, 2 and 3 (hence the order of three
-<tree-ish> command line arguments) are significant when you
+<tree-ish> command-line arguments) are significant when you
 start a 3-way merge with an index file that is already
 populated.  Here is an outline of how the algorithm works:
 
@@ -342,7 +348,7 @@ since you pulled from him:
 
 ----------------
 $ git fetch git://.... linus
-$ LT=`cat .git/FETCH_HEAD`
+$ LT=`git rev-parse FETCH_HEAD`
 ----------------
 
 Your work tree is still based on your HEAD ($JC), but you have