.SH "SYNOPSIS"
.nf
-\fIgit\-commit\fR [\-a] [\-i] [\-s] [\-v] [(\-c | \-C) <commit> | \-F <file> | \-m <msg>]
- [\-e] [\-\-author <author>] [\-\-] <file>...
+\fIgit\-commit\fR [\-a] [\-s] [\-v] [(\-c | \-C) <commit> | \-F <file> | \-m <msg>]
+ [\-\-no\-verify] [\-\-amend] [\-e] [\-\-author <author>]
+ [\-\-] [[\-i | \-o ]<file>...]
.fi
.SH "DESCRIPTION"
Updates the index file for given paths, or all modified files if \fI\-a\fR is specified, and makes a commit object\&. The command VISUAL and EDITOR environment variables to edit the commit log message\&.
+Several environment variable are used during commits\&. They are documented in \fBgit\-commit\-tree\fR(1)\&.
+
+
This command can run commit\-msg, pre\-commit, and post\-commit hooks\&. See hooks: \fIhooks.html\fR for more information\&.
.SH "OPTIONS"
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 further edit the message taken from these sources\&.
.TP
+\-\-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:
+
+
+.nf
+ $ git reset \-\-soft HEAD^
+ $ \&.\&.\&. do something else to come up with the right tree \&.\&.\&.
+ $ git commit \-c ORIG_HEAD
+
+.fi
+but can be used to amend a merge commit\&.
+
+.TP
\-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\&.
.TP
---
+\-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\&.
+
+.TP
+\-\-
Do not interpret any more arguments as options\&.
.TP
<file>...
-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\&.
+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 \fBgit\-reset\fR(1)\&.