git-svn: handle our top-level path being deleted and later re-added
[gitweb.git] / Documentation / git-commit.txt
index 63599d382827e69341983a80d64d53dd18e9ac4e..4261384158f53ebe85dc32148b5652dc697e5b3b 100644 (file)
@@ -10,7 +10,7 @@ SYNOPSIS
 [verse]
 'git-commit' [-a | --interactive] [-s] [-v] [-u]
           [(-c | -C) <commit> | -F <file> | -m <msg> | --amend]
-          [--no-verify] [-e] [--author <author>]
+          [--allow-empty] [--no-verify] [-e] [--author <author>]
           [--] [[-i | -o ]<file>...]
 
 DESCRIPTION
@@ -19,6 +19,7 @@ Use 'git commit' to store the current contents of the index in a new
 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
    index before using the 'commit' command (Note: even modified
    files must be "added");
@@ -85,9 +86,15 @@ 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.
+
 -e|--edit::
        The message taken from file with `-F`, command line with
        `-m`, and from file with `-C` are usually used as the
@@ -153,10 +160,13 @@ 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].  Removal
-of a file is staged with gitlink:git-rm[1].  After building the
-state to be committed incrementally with these commands, `git
-commit` (without any pathname parameter) is used to record what
+called the "index" with gitlink: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
+this file from participating in the next commit.  After building
+the state to be committed incrementally with these commands,
+`git commit` (without any pathname parameter) is used to record what
 has been staged so far.  This is the most basic form of the
 command.  An example: