Merge branch 'ff/svnimport' into next
[gitweb.git] / Documentation / git-commit.txt
index 53b64fa595a10ec62d14fde655ce6e96cf34e09c..38df59ce2357fcd37810b2aaca9d759e9138e654 100644 (file)
@@ -8,8 +8,9 @@ git-commit - Record your changes
 SYNOPSIS
 --------
 [verse]
-'git-commit' [-a] [-i] [-s] [-v] [(-c | -C) <commit> | -F <file> | -m <msg>]
-          [-e] [--author <author>] [--] <file>...
+'git-commit' [-a] [-s] [-v] [(-c | -C) <commit> | -F <file> | -m <msg>]
+          [--no-verify] [--amend] [-e] [--author <author>]
+          [--] [[-i | -o ]<file>...]
 
 DESCRIPTION
 -----------
@@ -18,6 +19,10 @@ Updates the index file for given paths, or all modified files if
 VISUAL and EDITOR environment variables to edit the commit log
 message.
 
+Several environment variable are used during commits.  They are
+documented in gitlink:git-commit-tree[1].
+
+
 This command can run `commit-msg`, `pre-commit`, and
 `post-commit` hooks.  See link:hooks.html[hooks] for more
 information.
@@ -67,21 +72,48 @@ OPTIONS
        commit log message unmodified.  This option lets you
        further edit the message taken from these sources.
 
+--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.
++
+--
+It is a rough equivalent for:
+------
+       $ git reset --soft HEAD^
+       $ ... do something else to come up with the right tree ...
+       $ git commit -c ORIG_HEAD
+
+------
+but can be used to amend a merge commit.
+--
+
 -i|--include::
        Instead of committing only the files specified on the
        command line, update them in the index file and then
        commit the whole index.  This is the traditional
        behaviour.
 
---::
-       Do not interpret any more arguments as options.
-
-<file>...::
+-o|--only::
        Commit only the files specified on the command line.
        This format cannot be used during a merge, nor when the
        index and the latest commit does not match on the
        specified paths to avoid confusion.
 
+\--::
+       Do not interpret any more arguments as options.
+
+<file>...::
+       Files to be committed.  The meaning of these is
+       different between `--include` and `--only`.  Without
+       either, it defaults `--only` semantics.
+
 If you make a commit and then found a mistake immediately after
 that, you can recover from it with gitlink:git-reset[1].