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

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


SYNOPSIS
--------
'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.

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.

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.


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.
Your sysadmin must hate you!::
    The password(5) name field is longer than a giant static buffer.

Discussion
----------

include::i18n.txt[]

See Also
--------
linkgit:git-write-tree[1]


Author
------
Written by Linus Torvalds <torvalds@osdl.org>

Documentation
--------------
Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.

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