git-commit-tree(1)
==================

NAME
----
git-commit-tree - Create a new commit object


SYNOPSIS
--------
[verse]
'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.

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
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 that is pointed at by
`.git/HEAD`, so that we can always see what the last committed
state was.

OPTIONS
-------
<tree>::
	An existing tree object

-p <parent commit>::
	Each '-p' indicates the id of a parent commit object.


Commit Information
------------------

A commit encapsulates:

- all parent object ids
- author name, email and date
- committer name and email and the commit time.

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)

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.

include::date-formats.txt[]

Diagnostics
-----------
You don't exist. Go away!::
    The passwd(5) gecos field couldn't be read
Your parents must have hated you!::
    The passwd(5) gecos field is longer than a giant static buffer.
Your sysadmin must hate you!::
    The passwd(5) name field is longer than a giant static buffer.

Discussion
----------

include::i18n.txt[]

SEE ALSO
--------
linkgit:git-write-tree[1]

GIT
---
Part of the linkgit:git[1] suite
