Merge branch 'maint'
[gitweb.git] / Documentation / git-commit.txt
index d4bfd49ce12ebe8f7b172d6f682d64ccbce66087..4bb51cc06ec5e1f47b748b14353e49a0acfdc775 100644 (file)
@@ -10,8 +10,8 @@ SYNOPSIS
 [verse]
 'git-commit' [-a | --interactive] [-s] [-v] [-u]
           [(-c | -C) <commit> | -F <file> | -m <msg> | --amend]
-          [--no-verify] [-e] [--author <author>]
-          [--] [[-i | -o ]<file>...]
+          [--allow-empty] [--no-verify] [-e] [--author <author>]
+          [--cleanup=<mode>] [--] [[-i | -o ]<file>...]
 
 DESCRIPTION
 -----------
@@ -20,11 +20,11 @@ commit along with a log message describing the changes you have made.
 
 The content to be added can be specified in several ways:
 
-1. by using gitlink:git-add[1] to incrementally "add" changes to the
+1. by using linkgit:git-add[1] to incrementally "add" changes to the
    index before using the 'commit' command (Note: even modified
    files must be "added");
 
-2. by using gitlink:git-rm[1] to remove files from the working tree
+2. by using linkgit:git-rm[1] to remove files from the working tree
    and the index, again before using the 'commit' command;
 
 3. by listing files as arguments to the 'commit' command, in which
@@ -41,13 +41,13 @@ The content to be added can be specified in several ways:
    by one which files should be part of the commit, before finalizing the
    operation.  Currently, this is done by invoking `git-add --interactive`.
 
-The gitlink:git-status[1] command can be used to obtain a
+The linkgit:git-status[1] command can be used to obtain a
 summary of what is included by any of the above for the next
 commit by giving the same set of parameters you would give to
 this command.
 
 If you make a commit and then found a mistake immediately after
-that, you can recover from it with gitlink:git-reset[1].
+that, you can recover from it with linkgit:git-reset[1].
 
 
 OPTIONS
@@ -86,9 +86,25 @@ OPTIONS
        Add Signed-off-by line at the end of the commit message.
 
 --no-verify::
-       This option bypasses the pre-commit hook.
+       This option bypasses the pre-commit and commit-msg hooks.
        See also link:hooks.html[hooks].
 
+--allow-empty::
+       Usually recording a commit that has the exact same tree as its
+       sole parent commit is a mistake, and the command prevents you
+       from making such a commit.  This option bypasses the safety, and
+       is primarily for use by foreign scm interface scripts.
+
+--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.
+
 -e|--edit::
        The message taken from file with `-F`, command line with
        `-m`, and from file with `-C` are usually used as the
@@ -123,6 +139,17 @@ but can be used to amend a merge commit.
        as well.  This is usually not what you want unless you
        are concluding a conflicted merge.
 
+-o|--only::
+       Make a commit only from the paths specified on the
+       command line, disregarding any contents that have been
+       staged so far. 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
+       no paths need be specified, which can be used to amend
+       the last commit without committing changes that have
+       already been staged.
+
 -u|--untracked-files::
        Show all untracked files, also those in uninteresting
        directories, in the "Untracked files:" section of commit
@@ -154,7 +181,7 @@ EXAMPLES
 --------
 When recording your own work, the contents of modified files in
 your working tree are temporarily stored to a staging area
-called the "index" with gitlink:git-add[1].  A file can be
+called the "index" with linkgit:git-add[1].  A file can be
 reverted back, only in the index but not in the working tree,
 to that of the last commit with `git-reset HEAD -- <file>`,
 which effectively reverts `git-add` and prevents the changes to
@@ -213,13 +240,13 @@ $ git commit
 this second commit would record the changes to `hello.c` and
 `hello.h` as expected.
 
-After a merge (initiated by either gitlink:git-merge[1] or
-gitlink:git-pull[1]) stops because of conflicts, cleanly merged
+After a merge (initiated by either linkgit:git-merge[1] or
+linkgit:git-pull[1]) stops because of conflicts, cleanly merged
 paths are already staged to be committed for you, and paths that
 conflicted are left in unmerged state.  You would have to first
-check which paths are conflicting with gitlink:git-status[1]
+check which paths are conflicting with linkgit:git-status[1]
 and after fixing them manually in your working tree, you would
-stage the result as usual with gitlink:git-add[1]:
+stage the result as usual with linkgit:git-add[1]:
 
 ------------
 $ git status | grep unmerged
@@ -264,18 +291,18 @@ order).
 
 HOOKS
 -----
-This command can run `commit-msg`, `pre-commit`, and
-`post-commit` hooks.  See link:hooks.html[hooks] for more
+This command can run `commit-msg`, `prepare-commit-msg`, `pre-commit`,
+and `post-commit` hooks.  See link:hooks.html[hooks] for more
 information.
 
 
 SEE ALSO
 --------
-gitlink:git-add[1],
-gitlink:git-rm[1],
-gitlink:git-mv[1],
-gitlink:git-merge[1],
-gitlink:git-commit-tree[1]
+linkgit:git-add[1],
+linkgit:git-rm[1],
+linkgit:git-mv[1],
+linkgit:git-merge[1],
+linkgit:git-commit-tree[1]
 
 Author
 ------
@@ -285,4 +312,4 @@ Junio C Hamano <junkio@cox.net>
 
 GIT
 ---
-Part of the gitlink:git[7] suite
+Part of the linkgit:git[7] suite