]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/git-commit-tree.txt
t4034: abstract away SHA-1-specific constants
[thirdparty/git.git] / Documentation / git-commit-tree.txt
CommitLineData
2cf565c5
DG
1git-commit-tree(1)
2==================
2cf565c5
DG
3
4NAME
5----
c3f0baac 6git-commit-tree - Create a new commit object
2cf565c5
DG
7
8
9SYNOPSIS
10--------
7791a1d9 11[verse]
33e8fc87 12'git commit-tree' <tree> [(-p <parent>)...]
df45cb3e
BK
13'git commit-tree' [(-p <parent>)...] [-S[<keyid>]] [(-m <message>)...]
14 [(-F <file>)...] <tree>
15
2cf565c5
DG
16
17DESCRIPTION
18-----------
5cb545fa 19This is usually not what an end user wants to run directly. See
5162e697 20linkgit:git-commit[1] instead.
5cb545fa 21
2cf565c5 22Creates a new commit object based on the provided tree object and
96b8d93a
JH
23emits the new commit object id on stdout. The log message is read
24from the standard input, unless `-m` or `-F` options are given.
2cf565c5 25
cbdeab98
BR
26The `-m` and `-F` options can be given any number of times, in any
27order. The commit log message will be composed in the order in which
28the options are given.
29
b3bc97cb
TR
30A commit object may have any number of parents. With exactly one
31parent, it is an ordinary commit. Having more than one parent makes
32the commit a merge between several lines of history. Initial (root)
33commits have no parents.
2cf565c5
DG
34
35While a tree represents a particular directory state of a working
36directory, a commit represents that state in "time", and explains how
37to get there.
38
2de9b711 39Normally a commit would identify a new "HEAD" state, and while Git
2cf565c5 40doesn't care where you save the note about that state, in practice we
27dedf0c
JH
41tend to just write the result to the file that is pointed at by
42`.git/HEAD`, so that we can always see what the last committed
43state was.
2cf565c5
DG
44
45OPTIONS
46-------
47<tree>::
cbdeab98 48 An existing tree object.
2cf565c5 49
96b8d93a 50-p <parent>::
23f8239b 51 Each `-p` indicates the id of a parent commit object.
a6080a0a 52
96b8d93a 53-m <message>::
b4ab1980 54 A paragraph in the commit log message. This can be given more than
96b8d93a
JH
55 once and each <message> becomes its own paragraph.
56
57-F <file>::
58 Read the commit log message from the given file. Use `-` to read
cbdeab98
BR
59 from the standard input. This can be given more than once and the
60 content of each file becomes its own paragraph.
96b8d93a 61
df45cb3e 62-S[<keyid>]::
55ca3f99 63--gpg-sign[=<keyid>]::
2b594bf9
MM
64 GPG-sign commits. The `keyid` argument is optional and
65 defaults to the committer identity; if specified, it must be
66 stuck to the option without a space.
df45cb3e 67
55ca3f99 68--no-gpg-sign::
66948561
JH
69 Do not GPG-sign commit, to countermand a `--gpg-sign` option
70 given earlier on the command line.
55ca3f99 71
2cf565c5
DG
72
73Commit Information
74------------------
75
76A commit encapsulates:
77
78- all parent object ids
79- author name, email and date
80- committer name and email and the commit time.
81
0734d265 82While parent object ids are provided on the command line, author and
02783075 83committer information is taken from the following environment variables,
0734d265 84if set:
2cf565c5
DG
85
86 GIT_AUTHOR_NAME
87 GIT_AUTHOR_EMAIL
88 GIT_AUTHOR_DATE
89 GIT_COMMITTER_NAME
90 GIT_COMMITTER_EMAIL
4e58bf97 91 GIT_COMMITTER_DATE
2cf565c5 92
df8baa42 93(nb "<", ">" and "\n"s are stripped)
2cf565c5 94
0734d265
MH
95In case (some of) these environment variables are not set, the information
96is taken from the configuration items user.name and user.email, or, if not
be33414b
PE
97present, the environment variable EMAIL, or, if that is not set,
98system user name and the hostname used for outgoing mail (taken
8a55caa8
JN
99from `/etc/mailname` and falling back to the fully qualified hostname when
100that file does not exist).
5773c9f2 101
a82830a4 102A commit comment is read from stdin. If a changelog
0b444cdb 103entry is not provided via "<" redirection, 'git commit-tree' will just wait
df8baa42 104for one to be entered and terminated with ^D.
2cf565c5 105
788070a2 106include::date-formats.txt[]
5773c9f2 107
5dc7bcc2
JH
108Discussion
109----------
110
111include::i18n.txt[]
112
8a55caa8
JN
113FILES
114-----
115/etc/mailname
116
56ae8df5 117SEE ALSO
c1bdacf9 118--------
5162e697 119linkgit:git-write-tree[1]
2cf565c5 120
2cf565c5
DG
121GIT
122---
9e1f0a85 123Part of the linkgit:git[1] suite