Merge branch 'jk/maint-fetch-submodule-check-fix' into maint
[git/gitweb.git] / Documentation / git-commit-tree.txt
blob0fdb82ee8697a53beab6defd4db9eca8840b1dd0
1 git-commit-tree(1)
2 ==================
4 NAME
5 ----
6 git-commit-tree - Create a new commit object
9 SYNOPSIS
10 --------
11 [verse]
12 'git commit-tree' <tree> [(-p <parent commit>)...] < changelog
14 DESCRIPTION
15 -----------
16 This is usually not what an end user wants to run directly.  See
17 linkgit:git-commit[1] instead.
19 Creates a new commit object based on the provided tree object and
20 emits the new commit object id on stdout.
22 A commit object may have any number of parents. With exactly one
23 parent, it is an ordinary commit. Having more than one parent makes
24 the commit a merge between several lines of history. Initial (root)
25 commits have no parents.
27 While a tree represents a particular directory state of a working
28 directory, a commit represents that state in "time", and explains how
29 to get there.
31 Normally a commit would identify a new "HEAD" state, and while git
32 doesn't care where you save the note about that state, in practice we
33 tend to just write the result to the file that is pointed at by
34 `.git/HEAD`, so that we can always see what the last committed
35 state was.
37 OPTIONS
38 -------
39 <tree>::
40         An existing tree object
42 -p <parent commit>::
43         Each '-p' indicates the id of a parent commit object.
46 Commit Information
47 ------------------
49 A commit encapsulates:
51 - all parent object ids
52 - author name, email and date
53 - committer name and email and the commit time.
55 While parent object ids are provided on the command line, author and
56 committer information is taken from the following environment variables,
57 if set:
59         GIT_AUTHOR_NAME
60         GIT_AUTHOR_EMAIL
61         GIT_AUTHOR_DATE
62         GIT_COMMITTER_NAME
63         GIT_COMMITTER_EMAIL
64         GIT_COMMITTER_DATE
65         EMAIL
67 (nb "<", ">" and "\n"s are stripped)
69 In case (some of) these environment variables are not set, the information
70 is taken from the configuration items user.name and user.email, or, if not
71 present, system user name and fully qualified hostname.
73 A commit comment is read from stdin. If a changelog
74 entry is not provided via "<" redirection, 'git commit-tree' will just wait
75 for one to be entered and terminated with ^D.
77 include::date-formats.txt[]
79 Diagnostics
80 -----------
81 You don't exist. Go away!::
82     The passwd(5) gecos field couldn't be read
83 Your parents must have hated you!::
84     The passwd(5) gecos field is longer than a giant static buffer.
85 Your sysadmin must hate you!::
86     The passwd(5) name field is longer than a giant static buffer.
88 Discussion
89 ----------
91 include::i18n.txt[]
93 SEE ALSO
94 --------
95 linkgit:git-write-tree[1]
97 GIT
98 ---
99 Part of the linkgit:git[1] suite