i18n: unpack-trees: avoid substituting only a verb in sentences
[gitweb.git] / Documentation / git-commit.txt
index 210563819190fa3e02eb89f0a24176d344e64fb0..9ec6b3cc17fd776b16f6410cf88c708831d4bca3 100644 (file)
@@ -12,7 +12,7 @@ SYNOPSIS
           [--dry-run] [(-c | -C | --fixup | --squash) <commit>]
           [-F <file> | -m <msg>] [--reset-author] [--allow-empty]
           [--allow-empty-message] [--no-verify] [-e] [--author=<author>]
-          [--date=<date>] [--cleanup=<mode>] [--status | --no-status]
+          [--date=<date>] [--cleanup=<mode>] [--[no-]status]
           [-i | -o] [-S[<keyid>]] [--] [<file>...]
 
 DESCRIPTION
@@ -32,7 +32,7 @@ The content to be added can be specified in several ways:
 3. by listing files as arguments to the 'commit' command, in which
    case the commit will ignore changes staged in the index, and instead
    record the current content of the listed files (which must already
-   be known to git);
+   be known to Git);
 
 4. by using the -a switch with the 'commit' command to automatically
    "add" changes from all known files (i.e. all files that are already
@@ -59,7 +59,7 @@ OPTIONS
 --all::
        Tell the command to automatically stage files that have
        been modified and deleted, but new files you have not
-       told git about are not affected.
+       told Git about are not affected.
 
 -p::
 --patch::
@@ -94,7 +94,7 @@ OPTIONS
 --reset-author::
        When used with -C/-c/--amend options, or when committing after a
        a conflicting cherry-pick, declare that the authorship of the
-       resulting commit now belongs of the committer. This also renews
+       resulting commit now belongs to the committer. This also renews
        the author timestamp.
 
 --short::
@@ -154,7 +154,11 @@ OPTIONS
 -s::
 --signoff::
        Add Signed-off-by line by the committer at the end of the commit
-       log message.
+       log message.  The meaning of a signoff depends on the project,
+       but it typically certifies that committer has
+       the rights to submit this work under the same license and
+       agrees to a Developer Certificate of Origin
+       (see http://developercertificate.org/ for more information).
 
 -n::
 --no-verify::
@@ -174,20 +178,37 @@ OPTIONS
        linkgit:git-commit-tree[1].
 
 --cleanup=<mode>::
-       This option sets how the commit message is cleaned up.
-       The  '<mode>' can be one of 'verbatim', 'whitespace', 'strip',
-       and 'default'. The 'default' mode will strip leading and
-       trailing empty lines and #commentary from the commit message
-       only if the message is to be edited. Otherwise only whitespace
-       removed. The 'verbatim' mode does not change message at all,
-       'whitespace' removes just leading/trailing whitespace lines
-       and 'strip' removes both whitespace and commentary.
+       This option determines how the supplied commit message should be
+       cleaned up before committing.  The '<mode>' can be `strip`,
+       `whitespace`, `verbatim`, `scissors` or `default`.
++
+--
+strip::
+       Strip leading and trailing empty lines, trailing whitespace,
+       commentary and collapse consecutive empty lines.
+whitespace::
+       Same as `strip` except #commentary is not removed.
+verbatim::
+       Do not change the message at all.
+scissors::
+       Same as `whitespace`, except that everything from (and
+       including) the line
+       "`# ------------------------ >8 ------------------------`"
+       is truncated if the message is to be edited. "`#`" can be
+       customized with core.commentChar.
+default::
+       Same as `strip` if the message is to be edited.
+       Otherwise `whitespace`.
+--
++
+The default can be changed by the 'commit.cleanup' configuration
+variable (see linkgit:git-config[1]).
 
 -e::
 --edit::
        The message taken from file with `-F`, command line with
-       `-m`, and from file with `-C` are usually used as the
-       commit log message unmodified.  This option lets you
+       `-m`, and from commit object with `-C` are usually used as
+       the commit log message unmodified. This option lets you
        further edit the message taken from these sources.
 
 --no-edit::
@@ -196,14 +217,15 @@ OPTIONS
        without changing its commit message.
 
 --amend::
-       Used to amend the tip of the current branch. Prepare the tree
-       object you would want to replace the latest commit as usual
-       (this includes the usual -i/-o and explicit paths), and the
-       commit log editor is seeded with the commit message from the
-       tip of the current branch. The commit you create replaces the
-       current tip -- if it was a merge, it will have the parents of
-       the current tip as parents -- so the current top commit is
-       discarded.
+       Replace the tip of the current branch by creating a new
+       commit. The recorded tree is prepared as usual (including
+       the effect of the `-i` and `-o` options and explicit
+       pathspec), and the message from the original commit is used
+       as the starting point, instead of an empty message, when no
+       other message is specified from the command line via options
+       such as `-m`, `-F`, `-c`, etc.  The new commit has the same
+       parents and author as the current one (the `--reset-author`
+       option can countermand this).
 +
 --
 It is a rough equivalent for:
@@ -232,9 +254,10 @@ FROM UPSTREAM REBASE" section in linkgit:git-rebase[1].)
 
 -o::
 --only::
-       Make a commit only from the paths specified on the
+       Make a commit by taking the updated working tree contents
+       of the paths specified on the
        command line, disregarding any contents that have been
-       staged so far. This is the default mode of operation of
+       staged for other paths. This is the default mode of operation of
        'git commit' if any paths are given on the command line,
        in which case this option can be omitted.
        If this option is specified together with '--amend', then
@@ -263,8 +286,15 @@ configuration variable documented in linkgit:git-config[1].
 --verbose::
        Show unified diff between the HEAD commit and what
        would be committed at the bottom of the commit message
-       template.  Note that this diff output doesn't have its
-       lines prefixed with '#'.
+       template to help the user describe the commit by reminding
+       what changes the commit has.
+       Note that this diff output doesn't have its
+       lines prefixed with '#'. This diff will not be a part
+       of the commit message.
++
+If specified twice, show in addition the unified diff between
+what would be committed and the worktree files, i.e. the unstaged
+changes to tracked files.
 
 -q::
 --quiet::
@@ -288,7 +318,13 @@ configuration variable documented in linkgit:git-config[1].
 
 -S[<keyid>]::
 --gpg-sign[=<keyid>]::
-       GPG-sign commit.
+       GPG-sign commits. The `keyid` argument is optional and
+       defaults to the committer identity; if specified, it must be
+       stuck to the option without a space.
+
+--no-gpg-sign::
+       Countermand `commit.gpgSign` configuration variable that is
+       set to force each and every commit to be signed.
 
 \--::
        Do not interpret any more arguments as options.
@@ -404,7 +440,7 @@ Though not required, it's a good idea to begin the commit message
 with a single short (less than 50 character) line summarizing the
 change, followed by a blank line and then a more thorough description.
 The text up to the first blank line in a commit message is treated
-as the commit title, and that title is used throughout git.
+as the commit title, and that title is used throughout Git.
 For example, linkgit:git-format-patch[1] turns a commit into email, and it uses
 the title on the Subject line and the rest of the commit in the body.