Documentation / git-commit-tree.txton commit Merge branch 'en/checkout-mismerge-fix' (d1a251a)
   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