mirror of
https://github.com/git/git.git
synced 2024-11-26 03:14:50 +08:00
96b8d93a53
Just like "git commit" does. Signed-off-by: Junio C Hamano <gitster@pobox.com>
116 lines
3.0 KiB
Plaintext
116 lines
3.0 KiB
Plaintext
git-commit-tree(1)
|
|
==================
|
|
|
|
NAME
|
|
----
|
|
git-commit-tree - Create a new commit object
|
|
|
|
|
|
SYNOPSIS
|
|
--------
|
|
[verse]
|
|
'git commit-tree' <tree> [(-p <parent>)...] < changelog
|
|
'git commit-tree' [(-p <parent>)...] [(-m <message>)...] [(-F <file>)...] <tree>
|
|
|
|
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. The log message is read
|
|
from the standard input, unless `-m` or `-F` options are given.
|
|
|
|
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>::
|
|
Each '-p' indicates the id of a parent commit object.
|
|
|
|
-m <message>::
|
|
A paragraph in the commig log message. This can be given more than
|
|
once and each <message> becomes its own paragraph.
|
|
|
|
-F <file>::
|
|
Read the commit log message from the given file. Use `-` to read
|
|
from the standard input.
|
|
|
|
|
|
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 the hostname used for outgoing mail (taken
|
|
from `/etc/mailname` and falling back to the fully qualified hostname when
|
|
that file does not exist).
|
|
|
|
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[]
|
|
|
|
FILES
|
|
-----
|
|
/etc/mailname
|
|
|
|
SEE ALSO
|
|
--------
|
|
linkgit:git-write-tree[1]
|
|
|
|
GIT
|
|
---
|
|
Part of the linkgit:git[1] suite
|