git-commit(1)
=============

NAME
----
git-commit - Record your changes

SYNOPSIS
--------
'git-commit' [-a] [-s] [-v] [(-c | -C) <commit> | -F <file> | -m <msg>] [-e] <file>...

DESCRIPTION
-----------
Updates the index file for given paths, or all modified files if
'-a' is specified, and makes a commit object.  The command
VISUAL and EDITOR environment variables to edit the commit log
message.

This command can run `commit-msg`, `pre-commit`, and
`post-commit` hooks.  See link:hooks.html[hooks] for more
information.

OPTIONS
-------
-a::
	Update all paths in the index file.

-c or -C <commit>::
	Take existing commit object, and reuse the log message
	and the authorship information (including the timestamp)
	when creating the commit.  With '-C', the editor is not
	invoked; with '-c' the user can further edit the commit
	message.

-F <file>::
	Take the commit message from the given file.  Use '-' to
	read the message from the standard input.

-m <msg>::
	Use the given <msg> as the commit message.

-s::
	Add Signed-off-by line at the end of the commit message.

-v::
	Look for suspicious lines the commit introduces, and
	abort committing if there is one.  The definition of
	'suspicious lines' is currently the lines that has
	trailing whitespaces, and the lines whose indentation
	has a SP character immediately followed by a TAB
	character.

-e::
	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.

<file>...::
	Update specified paths in the index file before committing.


Author
------
Written by Linus Torvalds <torvalds@osdl.org> and
Junio C Hamano <junkio@cox.net>


GIT
---
Part of the gitlink:git[7] suite
