git-p4: Fix regression in p4Where method.
[gitweb.git] / Documentation / git-commit-tree.txt
index d9b0ab07170160dda74512843bd15e9ef350a5a5..b8834baced4b25d6df47eb578c4d745d23e8cc73 100644 (file)
@@ -3,22 +3,25 @@ git-commit-tree(1)
 
 NAME
 ----
-git-commit-tree - Creates a new commit object
+git-commit-tree - Create a new commit object
 
 
 SYNOPSIS
 --------
-'git-commit-tree' <tree> [-p <parent commit>]\   < changelog
+'git commit-tree' <tree> [-p <parent commit>]\* < changelog
 
 DESCRIPTION
 -----------
+This is usually not what an end user wants to run directly.  See
+linkgit:git-commit[1] instead.
+
 Creates a new commit object based on the provided tree object and
-emits the new commit object id on stdout. If no parent is given then
-it is considered to be an initial tree.
+emits the new commit object id on stdout.
 
-A commit object usually has 1 parent (a commit after a change) or up
-to 16 parents.  More than one parent represents a merge of branches
-that led to them.
+A commit object may have any number of parents. With exactly one
+parent, it is an ordinary commit. Having more than one parent makes
+the commit a merge between several lines of history. Initial (root)
+commits have no parents.
 
 While a tree represents a particular directory state of a working
 directory, a commit represents that state in "time", and explains how
@@ -26,8 +29,9 @@ to get there.
 
 Normally a commit would identify a new "HEAD" state, and while git
 doesn't care where you save the note about that state, in practice we
-tend to just write the result to the file `.git/HEAD`, so that we can
-always see what the last committed state was.
+tend to just write the result to the file that is pointed at by
+`.git/HEAD`, so that we can always see what the last committed
+state was.
 
 OPTIONS
 -------
@@ -36,7 +40,7 @@ OPTIONS
 
 -p <parent commit>::
        Each '-p' indicates the id of a parent commit object.
-       
+
 
 Commit Information
 ------------------
@@ -47,34 +51,46 @@ A commit encapsulates:
 - author name, email and date
 - committer name and email and the commit time.
 
-If not provided, "git-commit-tree" uses your name, hostname and domain to
-provide author and committer info. This can be overridden using the
-following environment variables.
+While parent object ids are provided on the command line, author and
+committer information is taken from the following environment variables,
+if set:
 
        GIT_AUTHOR_NAME
        GIT_AUTHOR_EMAIL
        GIT_AUTHOR_DATE
        GIT_COMMITTER_NAME
        GIT_COMMITTER_EMAIL
+       GIT_COMMITTER_DATE
+       EMAIL
 
 (nb "<", ">" and "\n"s are stripped)
 
-A commit comment is read from stdin (max 999 chars). If a changelog
-entry is not provided via "<" redirection, "git-commit-tree" will just wait
+In case (some of) these environment variables are not set, the information
+is taken from the configuration items user.name and user.email, or, if not
+present, system user name and fully qualified hostname.
+
+A commit comment is read from stdin. If a changelog
+entry is not provided via "<" redirection, 'git-commit-tree' will just wait
 for one to be entered and terminated with ^D.
 
+
 Diagnostics
 -----------
 You don't exist. Go away!::
     The passwd(5) gecos field couldn't be read
 Your parents must have hated you!::
-    The password(5) gecos field is longer than a giant static buffer.
+    The passwd(5) gecos field is longer than a giant static buffer.
 Your sysadmin must hate you!::
-    The password(5) name field is longer than a giant static buffer.
+    The passwd(5) name field is longer than a giant static buffer.
 
-See Also
+Discussion
+----------
+
+include::i18n.txt[]
+
+SEE ALSO
 --------
-gitlink:git-write-tree[1]
+linkgit:git-write-tree[1]
 
 
 Author
@@ -87,5 +103,4 @@ Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel
 
 GIT
 ---
-Part of the gitlink:git[7] suite
-
+Part of the linkgit:git[1] suite