1git-commit-tree(1) 2================== 3 4NAME 5---- 6git-commit-tree - Create a new commit object 7 8 9SYNOPSIS 10-------- 11[verse] 12'git commit-tree' <tree> [(-p <parent>)...] 13'git commit-tree' [(-p <parent>)...] [-S[<keyid>]] [(-m <message>)...] 14 [(-F <file>)...] <tree> 15 16 17DESCRIPTION 18----------- 19This is usually not what an end user wants to run directly. See 20linkgit:git-commit[1] instead. 21 22Creates a new commit object based on the provided tree object and 23emits the new commit object id on stdout. The log message is read 24from the standard input, unless `-m` or `-F` options are given. 25 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 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. 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 39Normally a commit would identify a new "HEAD" state, and while Git 40doesn't care where you save the note about that state, in practice we 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. 44 45OPTIONS 46------- 47<tree>:: 48 An existing tree object. 49 50-p <parent>:: 51 Each `-p` indicates the id of a parent commit object. 52 53-m <message>:: 54 A paragraph in the commit log message. This can be given more than 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 59 from the standard input. This can be given more than once and the 60 content of each file becomes its own paragraph. 61 62-S[<keyid>]:: 63--gpg-sign[=<keyid>]:: 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. 67 68--no-gpg-sign:: 69 Do not GPG-sign commit, to countermand a `--gpg-sign` option 70 given earlier on the command line. 71 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 82While parent object ids are provided on the command line, author and 83committer information is taken from the following environment variables, 84if set: 85 86 GIT_AUTHOR_NAME 87 GIT_AUTHOR_EMAIL 88 GIT_AUTHOR_DATE 89 GIT_COMMITTER_NAME 90 GIT_COMMITTER_EMAIL 91 GIT_COMMITTER_DATE 92 93(nb "<", ">" and "\n"s are stripped) 94 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 97present, the environment variable EMAIL, or, if that is not set, 98system user name and the hostname used for outgoing mail (taken 99from `/etc/mailname` and falling back to the fully qualified hostname when 100that file does not exist). 101 102A commit comment is read from stdin. If a changelog 103entry is not provided via "<" redirection, 'git commit-tree' will just wait 104for one to be entered and terminated with ^D. 105 106include::date-formats.txt[] 107 108Discussion 109---------- 110 111include::i18n.txt[] 112 113FILES 114----- 115/etc/mailname 116 117SEE ALSO 118-------- 119linkgit:git-write-tree[1] 120 121GIT 122--- 123Part of the linkgit:git[1] suite