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 26A commit object may have any number of parents. With exactly one 27parent, it is an ordinary commit. Having more than one parent makes 28the commit a merge between several lines of history. Initial (root) 29commits have no parents. 30 31While a tree represents a particular directory state of a working 32directory, a commit represents that state in "time", and explains how 33to get there. 34 35Normally a commit would identify a new "HEAD" state, and while Git 36doesn't care where you save the note about that state, in practice we 37tend to just write the result to the file that is pointed at by 38`.git/HEAD`, so that we can always see what the last committed 39state was. 40 41OPTIONS 42------- 43<tree>:: 44 An existing tree object 45 46-p <parent>:: 47 Each `-p` indicates the id of a parent commit object. 48 49-m <message>:: 50 A paragraph in the commit log message. This can be given more than 51 once and each <message> becomes its own paragraph. 52 53-F <file>:: 54 Read the commit log message from the given file. Use `-` to read 55 from the standard input. 56 57-S[<keyid>]:: 58--gpg-sign[=<keyid>]:: 59 GPG-sign commits. The `keyid` argument is optional and 60 defaults to the committer identity; if specified, it must be 61 stuck to the option without a space. 62 63--no-gpg-sign:: 64 Do not GPG-sign commit, to countermand a `--gpg-sign` option 65 given earlier on the command line. 66 67 68Commit Information 69------------------ 70 71A commit encapsulates: 72 73- all parent object ids 74- author name, email and date 75- committer name and email and the commit time. 76 77While parent object ids are provided on the command line, author and 78committer information is taken from the following environment variables, 79if set: 80 81 GIT_AUTHOR_NAME 82 GIT_AUTHOR_EMAIL 83 GIT_AUTHOR_DATE 84 GIT_COMMITTER_NAME 85 GIT_COMMITTER_EMAIL 86 GIT_COMMITTER_DATE 87 88(nb "<", ">" and "\n"s are stripped) 89 90In case (some of) these environment variables are not set, the information 91is taken from the configuration items user.name and user.email, or, if not 92present, the environment variable EMAIL, or, if that is not set, 93system user name and the hostname used for outgoing mail (taken 94from `/etc/mailname` and falling back to the fully qualified hostname when 95that file does not exist). 96 97A commit comment is read from stdin. If a changelog 98entry is not provided via "<" redirection, 'git commit-tree' will just wait 99for one to be entered and terminated with ^D. 100 101include::date-formats.txt[] 102 103Discussion 104---------- 105 106include::i18n.txt[] 107 108FILES 109----- 110/etc/mailname 111 112SEE ALSO 113-------- 114linkgit:git-write-tree[1] 115 116GIT 117--- 118Part of the linkgit:git[1] suite