Merge branch 'lt/config'
[git.git] / Documentation / git-commit.txt
index 5b1b4d3..38df59c 100644 (file)
@@ -9,7 +9,8 @@ SYNOPSIS
 --------
 [verse]
 'git-commit' [-a] [-s] [-v] [(-c | -C) <commit> | -F <file> | -m <msg>]
 --------
 [verse]
 'git-commit' [-a] [-s] [-v] [(-c | -C) <commit> | -F <file> | -m <msg>]
-          [-e] [--author <author>] [--] [[-i | -o ]<file>...]
+          [--no-verify] [--amend] [-e] [--author <author>]
+          [--] [[-i | -o ]<file>...]
 
 DESCRIPTION
 -----------
 
 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.
 
 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.
 This command can run `commit-msg`, `pre-commit`, and
 `post-commit` hooks.  See link:hooks.html[hooks] for more
 information.
@@ -67,6 +72,28 @@ OPTIONS
        commit log message unmodified.  This option lets you
        further edit the message taken from these sources.
 
        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
 -i|--include::
        Instead of committing only the files specified on the
        command line, update them in the index file and then
@@ -79,33 +106,18 @@ OPTIONS
        index and the latest commit does not match on the
        specified paths to avoid confusion.
 
        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
        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 `--include` semantics.
+       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].
 
 
 
 If you make a commit and then found a mistake immediately after
 that, you can recover from it with gitlink:git-reset[1].
 
 
-WARNING
--------
-
-The 1.2.0 and its maintenance series 1.2.X will keep the
-traditional `--include` semantics as the default when neither
-`--only` nor `--include` is specified and `paths...` are given.
-This *will* change during the development towards 1.3.0 in the
-'master' branch of `git.git` repository.  If you are using this
-command in your scripts, and you depend on the traditional
-`--include` semantics, please update them to explicitly ask for
-`--include` semantics.  Also if you are used to making partial
-commit using `--include` semantics, please train your fingers to
-say `git commit --include paths...` (or `git commit -i paths...`).
-
-
 Discussion
 ----------
 
 Discussion
 ----------
 
@@ -121,7 +133,7 @@ even the command is invoked from a subdirectory.
 That is, update the specified paths to the index and then commit
 the whole tree.
 
 That is, update the specified paths to the index and then commit
 the whole tree.
 
-`git commit --only paths...` largely bypasses the index file and
+`git commit paths...` largely bypasses the index file and
 commits only the changes made to the specified paths.  It has
 however several safety valves to prevent confusion.
 
 commits only the changes made to the specified paths.  It has
 however several safety valves to prevent confusion.