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

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


SYNOPSIS
--------
'git-commit-tree' <tree> [-p <parent commit>]\* < changelog

DESCRIPTION
-----------
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 `.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.

If not provided, "git-commit-tree" uses your name, hostname and domain to
provide author and committer info. This can be overridden by
either `.git/config` file, or using the following environment variables.

	GIT_AUTHOR_NAME
	GIT_AUTHOR_EMAIL
	GIT_AUTHOR_DATE
	GIT_COMMITTER_NAME
	GIT_COMMITTER_EMAIL

(nb "<", ">" and "\n"s are stripped)

In `.git/config` file, the following items are used:

	[user]
		name = "Your Name"
		email = "your@email.address.xz"

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

See Also
--------
gitlink: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 gitlink:git[7] suite

