'\" t
.\"     Title: git-commit
.\"    Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/>
.\"      Date: 2025-09-23
.\"    Manual: Git Manual
.\"    Source: Git 2.51.0.315.gbb69721404
.\"  Language: English
.\"
.TH "GIT\-COMMIT" "1" "2025-09-23" "Git 2\&.51\&.0\&.315\&.gbb6972" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
git-commit \- Record changes to the repository
.SH "SYNOPSIS"
.sp
.nf
\fBgit\fR \fBcommit\fR [\fB\-a\fR | \fB\-\-interactive\fR | \fB\-\-patch\fR] [\fB\-s\fR] [\fB\-v\fR] [\fB\-u\fR[\fI<mode>\fR]] [\fB\-\-amend\fR]
	   [\fB\-\-dry\-run\fR] [(\fB\-c\fR | \fB\-C\fR | \fB\-\-squash\fR) \fI<commit>\fR | \fB\-\-fixup\fR [(\fBamend\fR|\fBreword\fR)\fB:\fR]\fI<commit>\fR]
	   [\fB\-F\fR \fI<file>\fR | \fB\-m\fR \fI<msg>\fR] [\fB\-\-reset\-author\fR] [\fB\-\-allow\-empty\fR]
	   [\fB\-\-allow\-empty\-message\fR] [\fB\-\-no\-verify\fR] [\fB\-e\fR] [\fB\-\-author=\fR\fI<author>\fR]
	   [\fB\-\-date=\fR\fI<date>\fR] [\fB\-\-cleanup=\fR\fI<mode>\fR] [\fB\-\-\fR[\fBno\-\fR]\fBstatus\fR]
	   [\fB\-i\fR | \fB\-o\fR] [\fB\-\-pathspec\-from\-file=\fR\fI<file>\fR [\fB\-\-pathspec\-file\-nul\fR]]
	   [(\fB\-\-trailer\fR \fI<token>\fR[(\fB=\fR|\fB:\fR)\fI<value>\fR])\&...\:] [\fB\-S\fR[\fI<keyid>\fR]]
	   [\fB\-\-\fR] [\fI<pathspec>\fR\&...\:]
.fi
.SH "DESCRIPTION"
.sp
Create a new commit containing the current contents of the index and the given log message describing the changes\&. The new commit is a direct child of HEAD, usually the tip of the current branch, and the branch is updated to point to it (unless no branch is associated with the working tree, in which case \fBHEAD\fR is "detached" as described in \fBgit-checkout\fR(1))\&.
.sp
The content to be committed can be specified in several ways:
.sp
.RS 4
.ie n \{\
\h'-04' 1.\h'+01'\c
.\}
.el \{\
.sp -1
.IP "  1." 4.2
.\}
by using
\fBgit-add\fR(1)
to incrementally "add" changes to the index before using the
\fBcommit\fR
command (Note: even modified files must be "added");
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 2.\h'+01'\c
.\}
.el \{\
.sp -1
.IP "  2." 4.2
.\}
by using
\fBgit-rm\fR(1)
to remove files from the working tree and the index, again before using the
\fBcommit\fR
command;
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 3.\h'+01'\c
.\}
.el \{\
.sp -1
.IP "  3." 4.2
.\}
by listing files as arguments to the
\fBcommit\fR
command (without
\fB\-\-interactive\fR
or
\fB\-\-patch\fR
switch), in which case the commit will ignore changes staged in the index, and instead record the current content of the listed files (which must already be known to Git);
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 4.\h'+01'\c
.\}
.el \{\
.sp -1
.IP "  4." 4.2
.\}
by using the
\fB\-a\fR
switch with the
\fBcommit\fR
command to automatically "add" changes from all known files (i\&.e\&. all files that are already listed in the index) and to automatically "rm" files in the index that have been removed from the working tree, and then perform the actual commit;
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 5.\h'+01'\c
.\}
.el \{\
.sp -1
.IP "  5." 4.2
.\}
by using the
\fB\-\-interactive\fR
or
\fB\-\-patch\fR
switches with the
\fBcommit\fR
command to decide one by one which files or hunks should be part of the commit in addition to contents in the index, before finalizing the operation\&. See the
\(lqInteractive Mode\(rq
section of
\fBgit-add\fR(1)
to learn how to operate these modes\&.
.RE
.sp
The \fB\-\-dry\-run\fR option can be used to obtain a summary of what is included by any of the above for the next commit by giving the same set of parameters (options and paths)\&.
.sp
If you make a commit and then find a mistake immediately after that, you can recover from it with \fBgit\fR \fBreset\fR\&.
.SH "OPTIONS"
.PP
\fB\-a\fR, \fB\-\-all\fR
.RS 4
Automatically stage files that have been modified and deleted, but new files you have not told Git about are not affected\&.
.RE
.PP
\fB\-p\fR, \fB\-\-patch\fR
.RS 4
Use the interactive patch selection interface to choose which changes to commit\&. See
\fBgit-add\fR(1)
for details\&.
.RE
.PP
\fB\-U\fR\fI<n>\fR, \fB\-\-unified=\fR\fI<n>\fR
.RS 4
Generate diffs with
\fI<n>\fR
lines of context\&. Defaults to
\fBdiff\&.context\fR
or 3 if the config option is unset\&.
.RE
.PP
\fB\-\-inter\-hunk\-context=\fR\fI<n>\fR
.RS 4
Show the context between diff hunks, up to the specified
\fI<number>\fR
of lines, thereby fusing hunks that are close to each other\&. Defaults to
\fBdiff\&.interHunkContext\fR
or 0 if the config option is unset\&.
.RE
.PP
\fB\-C\fR \fI<commit>\fR, \fB\-\-reuse\-message=\fR\fI<commit>\fR
.RS 4
Take an existing
\fI<commit>\fR
object, and reuse the log message and the authorship information (including the timestamp) when creating the commit\&.
.RE
.PP
\fB\-c\fR \fI<commit>\fR, \fB\-\-reedit\-message=\fR\fI<commit>\fR
.RS 4
Like
\fB\-C\fR, but with
\fB\-c\fR
the editor is invoked, so that the user can further edit the commit message\&.
.RE
.PP
\fB\-\-fixup=\fR[(\fBamend\fR|\fBreword\fR)\fB:\fR]\fI<commit>\fR
.RS 4
Create a new commit which "fixes up"
\fI<commit>\fR
when applied with
\fBgit\fR
\fBrebase\fR
\fB\-\-autosquash\fR\&. Plain
\fB\-\-fixup=\fR\fI<commit>\fR
creates a "fixup!" commit which changes the content of
\fI<commit>\fR
but leaves its log message untouched\&.
\fB\-\-fixup=amend:\fR\fI<commit>\fR
is similar but creates an "amend!" commit which also replaces the log message of
\fI<commit>\fR
with the log message of the "amend!" commit\&.
\fB\-\-fixup=reword:\fR\fI<commit>\fR
creates an "amend!" commit which replaces the log message of
\fI<commit>\fR
with its own log message but makes no changes to the content of
\fI<commit>\fR\&.
.sp
The commit created by plain
\fB\-\-fixup=\fR\fI<commit>\fR
has a title composed of "fixup!" followed by the title of
\fI<commit>\fR, and is recognized specially by
\fBgit\fR
\fBrebase\fR
\fB\-\-autosquash\fR\&. The
\fB\-m\fR
option may be used to supplement the log message of the created commit, but the additional commentary will be thrown away once the "fixup!" commit is squashed into
\fI<commit>\fR
by
\fBgit\fR
\fBrebase\fR
\fB\-\-autosquash\fR\&.
.sp
The commit created by
\fB\-\-fixup=amend:\fR\fI<commit>\fR
is similar but its title is instead prefixed with "amend!"\&. The log message of
\fI<commit>\fR
is copied into the log message of the "amend!" commit and opened in an editor so it can be refined\&. When
\fBgit\fR
\fBrebase\fR
\fB\-\-autosquash\fR
squashes the "amend!" commit into
\fI<commit>\fR, the log message of
\fI<commit>\fR
is replaced by the refined log message from the "amend!" commit\&. It is an error for the "amend!" commit\(cqs log message to be empty unless
\fB\-\-allow\-empty\-message\fR
is specified\&.
.sp
\fB\-\-fixup=reword:\fR\fI<commit>\fR
is shorthand for
\fB\-\-fixup=amend:\fR\fI<commit>\fR
\fB\-\-only\fR\&. It creates an "amend!" commit with only a log message (ignoring any changes staged in the index)\&. When squashed by
\fBgit\fR
\fBrebase\fR
\fB\-\-autosquash\fR, it replaces the log message of
\fI<commit>\fR
without making any other changes\&.
.sp
Neither "fixup!" nor "amend!" commits change authorship of
\fI<commit>\fR
when applied by
\fBgit\fR
\fBrebase\fR
\fB\-\-autosquash\fR\&. See
\fBgit-rebase\fR(1)
for details\&.
.RE
.PP
\fB\-\-squash=\fR\fI<commit>\fR
.RS 4
Construct a commit message for use with
\fBgit\fR
\fBrebase\fR
\fB\-\-autosquash\fR\&. The commit message title is taken from the specified commit with a prefix of "squash! "\&. Can be used with additional commit message options (\fB\-m\fR/\fB\-c\fR/\fB\-C\fR/\fB\-F\fR)\&. See
\fBgit-rebase\fR(1)
for details\&.
.RE
.PP
\fB\-\-reset\-author\fR
.RS 4
When used with
\fB\-C\fR/\fB\-c\fR/\fB\-\-amend\fR
options, or when committing after a conflicting cherry\-pick, declare that the authorship of the resulting commit now belongs to the committer\&. This also renews the author timestamp\&.
.RE
.PP
\fB\-\-short\fR
.RS 4
When doing a dry\-run, give the output in the short\-format\&. See
\fBgit-status\fR(1)
for details\&. Implies
\fB\-\-dry\-run\fR\&.
.RE
.PP
\fB\-\-branch\fR
.RS 4
Show the branch and tracking info even in short\-format\&.
.RE
.PP
\fB\-\-porcelain\fR
.RS 4
When doing a dry\-run, give the output in a porcelain\-ready format\&. See
\fBgit-status\fR(1)
for details\&. Implies
\fB\-\-dry\-run\fR\&.
.RE
.PP
\fB\-\-long\fR
.RS 4
When doing a dry\-run, give the output in the long\-format\&. Implies
\fB\-\-dry\-run\fR\&.
.RE
.PP
\fB\-z\fR, \fB\-\-null\fR
.RS 4
When showing
\fBshort\fR
or
\fBporcelain\fR
status output, print the filename verbatim and terminate the entries with
\fINUL\fR, instead of
\fILF\fR\&. If no format is given, implies the
\fB\-\-porcelain\fR
output format\&. Without the
\fB\-z\fR
option, filenames with "unusual" characters are quoted as explained for the configuration variable
\fBcore\&.quotePath\fR
(see
\fBgit-config\fR(1))\&.
.RE
.PP
\fB\-F\fR \fI<file>\fR, \fB\-\-file=\fR\fI<file>\fR
.RS 4
Take the commit message from
\fI<file>\fR\&. Use
\fI\-\fR
to read the message from the standard input\&.
.RE
.PP
\fB\-\-author=\fR\fI<author>\fR
.RS 4
Override the commit author\&. Specify an explicit author using the standard
\fBA\fR
\fBU\fR
\fBThor\fR
<author@example\&.\fBcom\fR> format\&. Otherwise
\fI<author>\fR
is assumed to be a pattern and is used to search for an existing commit by that author (i\&.e\&.
\fBgit\fR
\fBrev\-list\fR
\fB\-\-all\fR
\fB\-i\fR
\fB\-\-author=\fR\fI<author>\fR); the commit author is then copied from the first such commit found\&.
.RE
.PP
\fB\-\-date=\fR\fI<date>\fR
.RS 4
Override the author date used in the commit\&.
.RE
.PP
\fB\-m\fR \fI<msg>\fR, \fB\-\-message=\fR\fI<msg>\fR
.RS 4
Use
\fI<msg>\fR
as the commit message\&. If multiple
\fB\-m\fR
options are given, their values are concatenated as separate paragraphs\&.
.sp
The
\fB\-m\fR
option is mutually exclusive with
\fB\-c\fR,
\fB\-C\fR, and
\fB\-F\fR\&.
.RE
.PP
\fB\-t\fR \fI<file>\fR, \fB\-\-template=\fR\fI<file>\fR
.RS 4
When editing the commit message, start the editor with the contents in
\fI<file>\fR\&. The
\fBcommit\&.template\fR
configuration variable is often used to give this option implicitly to the command\&. This mechanism can be used by projects that want to guide participants with some hints on what to write in the message in what order\&. If the user exits the editor without editing the message, the commit is aborted\&. This has no effect when a message is given by other means, e\&.g\&. with the
\fB\-m\fR
or
\fB\-F\fR
options\&.
.RE
.PP
\fB\-s\fR, \fB\-\-signoff\fR, \fB\-\-no\-signoff\fR
.RS 4
Add a
\fBSigned\-off\-by\fR
trailer by the committer at the end of the commit log message\&. The meaning of a signoff depends on the project to which you\(cqre committing\&. For example, it may certify that the committer has the rights to submit the work under the project\(cqs license or agrees to some contributor representation, such as a Developer Certificate of Origin\&. (See
\m[blue]\fBhttps://developercertificate\&.org\fR\m[]
for the one used by the Linux kernel and Git projects\&.) Consult the documentation or leadership of the project to which you\(cqre contributing to understand how the signoffs are used in that project\&.
.sp
The
\fB\-\-no\-signoff\fR
option can be used to countermand an earlier
\fB\-\-signoff\fR
option on the command line\&.
.RE
.PP
\fB\-\-trailer\fR \fI<token>\fR[(\fB=\fR|\fB:\fR)\fI<value>\fR]
.RS 4
Specify a (\fI<token>\fR,
\fI<value>\fR) pair that should be applied as a trailer\&. (e\&.g\&.
\fBgit\fR
\fBcommit\fR
\fB\-\-trailer\fR
"Signed\-off\-by:C
\fBO\fR
\fBMitter\fR
\fB\e\fR
<committer@example\&.\fBcom\fR>"
\fB\-\-trailer\fR
"Helped\-by:C
\fBO\fR
\fBMitter\fR
\fB\e\fR
<committer@example\&.\fBcom\fR>" will add the
\fBSigned\-off\-by\fR
trailer and the
\fBHelped\-by\fR
trailer to the commit message\&.) The
\fBtrailer\&.*\fR
configuration variables (\fBgit-interpret-trailers\fR(1)) can be used to define if a duplicated trailer is omitted, where in the run of trailers each trailer would appear, and other details\&.
.RE
.PP
\fB\-n\fR, \fB\-\-verify\fR, \fB\-\-no\-verify\fR
.RS 4
Bypass the
\fBpre\-commit\fR
and
\fBcommit\-msg\fR
hooks\&. See also
\fBgithooks\fR(5)\&.
.RE
.PP
\fB\-\-allow\-empty\fR
.RS 4
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\&.
.RE
.PP
\fB\-\-allow\-empty\-message\fR
.RS 4
Create a commit with an empty commit message without using plumbing commands like
\fBgit-commit-tree\fR(1)\&. Like
\fB\-\-allow\-empty\fR, this command is primarily for use by foreign SCM interface scripts\&.
.RE
.PP
\fB\-\-cleanup=\fR\fI<mode>\fR
.RS 4
Determine how the supplied commit message should be cleaned up before committing\&. The
\fI<mode>\fR
can be
\fBstrip\fR,
\fBwhitespace\fR,
\fBverbatim\fR,
\fBscissors\fR
or
\fBdefault\fR\&.
.PP
\fBstrip\fR
.RS 4
Strip leading and trailing empty lines, trailing whitespace, commentary and collapse consecutive empty lines\&.
.RE
.PP
\fBwhitespace\fR
.RS 4
Same as
\fBstrip\fR
except #commentary is not removed\&.
.RE
.PP
\fBverbatim\fR
.RS 4
Do not change the message at all\&.
.RE
.PP
\fBscissors\fR
.RS 4
Same as
\fBwhitespace\fR
except that everything from (and including) the line found below is truncated, if the message is to be edited\&. "#" can be customized with
\fBcore\&.commentChar\fR\&.
.sp
.if n \{\
.RS 4
.\}
.nf
# \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- >8 \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
.fi
.if n \{\
.RE
.\}
.RE
.PP
\fBdefault\fR
.RS 4
Same as
\fBstrip\fR
if the message is to be edited\&. Otherwise
\fBwhitespace\fR\&.
.RE
.sp
The default can be changed by the
\fBcommit\&.cleanup\fR
configuration variable (see
\fBgit-config\fR(1))\&.
.RE
.PP
\fB\-e\fR, \fB\-\-edit\fR
.RS 4
Let the user further edit the message taken from
\fI<file>\fR
with
\fB\-F\fR
\fI<file>\fR, command line with
\fB\-m\fR
\fI<message>\fR, and from
\fI<commit>\fR
with
\fB\-C\fR
\fI<commit>\fR\&.
.RE
.PP
\fB\-\-no\-edit\fR
.RS 4
Use the selected commit message without launching an editor\&. For example,
\fBgit\fR
\fBcommit\fR
\fB\-\-amend\fR
\fB\-\-no\-edit\fR
amends a commit without changing its commit message\&.
.RE
.PP
\fB\-\-amend\fR
.RS 4
Replace the tip of the current branch by creating a new commit\&. The recorded tree is prepared as usual (including the effect of the
\fB\-i\fR
and
\fB\-o\fR
options and explicit pathspec), and the message from the original commit is used as the starting point, instead of an empty message, when no other message is specified from the command line via options such as
\fB\-m\fR,
\fB\-F\fR,
\fB\-c\fR, etc\&. The new commit has the same parents and author as the current one (the
\fB\-\-reset\-author\fR
option can countermand this)\&.
.sp
It is a rough equivalent for:
.sp
.if n \{\
.RS 4
.\}
.nf
        $ git reset \-\-soft HEAD^
        $ \&.\&.\&. do something else to come up with the right tree \&.\&.\&.
        $ git commit \-c ORIG_HEAD
.fi
.if n \{\
.RE
.\}
.sp
but can be used to amend a merge commit\&.
.sp
You should understand the implications of rewriting history if you amend a commit that has already been published\&. (See the "RECOVERING FROM UPSTREAM REBASE" section in
\fBgit-rebase\fR(1)\&.)
.RE
.PP
\fB\-\-no\-post\-rewrite\fR
.RS 4
Bypass the
\fBpost\-rewrite\fR
hook\&.
.RE
.PP
\fB\-i\fR, \fB\-\-include\fR
.RS 4
Before making a commit out of staged contents so far, stage the contents of paths given on the command line as well\&. This is usually not what you want unless you are concluding a conflicted merge\&.
.RE
.PP
\fB\-o\fR, \fB\-\-only\fR
.RS 4
Make a commit by taking the updated working tree contents of the paths specified on the command line, disregarding any contents that have been staged for other paths\&. This is the default mode of operation of
\fBgit\fR
\fBcommit\fR
if any paths are given on the command line, in which case this option can be omitted\&. If this option is specified together with
\fB\-\-amend\fR, then no paths need to be specified, which can be used to amend the last commit without committing changes that have already been staged\&. If used together with
\fB\-\-allow\-empty\fR
paths are also not required, and an empty commit will be created\&.
.RE
.PP
\fB\-\-pathspec\-from\-file=\fR\fI<file>\fR
.RS 4
Pass pathspec in
\fI<file>\fR
instead of commandline args\&. If
\fI<file>\fR
is exactly
\fB\-\fR
then standard input is used\&. Pathspec elements are separated by
\fILF\fR
or
\fICR\fR/\fILF\fR\&. Pathspec elements can be quoted as explained for the configuration variable
\fBcore\&.quotePath\fR
(see
\fBgit-config\fR(1))\&. See also
\fB\-\-pathspec\-file\-nul\fR
and global
\fB\-\-literal\-pathspecs\fR\&.
.RE
.PP
\fB\-\-pathspec\-file\-nul\fR
.RS 4
Only meaningful with
\fB\-\-pathspec\-from\-file\fR\&. Pathspec elements are separated with
\fINUL\fR
character and all other characters are taken literally (including newlines and quotes)\&.
.RE
.PP
\fB\-u\fR[\fI<mode>\fR], \fB\-\-untracked\-files\fR[\fB=\fR\fI<mode>\fR]
.RS 4
Show untracked files\&.
.sp
The
\fI<mode>\fR
parameter is optional (defaults to
\fBall\fR), and is used to specify the handling of untracked files; when
\fB\-u\fR
is not used, the default is
\fBnormal\fR, i\&.e\&. show untracked files and directories\&.
.sp
The possible options are:
.PP
\fBno\fR
.RS 4
Show no untracked files
.RE
.PP
\fBnormal\fR
.RS 4
Shows untracked files and directories
.RE
.PP
\fBall\fR
.RS 4
Also shows individual files in untracked directories\&.
.RE
.sp
All usual spellings for Boolean value
\fBtrue\fR
are taken as
\fBnormal\fR
and
\fBfalse\fR
as
\fBno\fR\&. The default can be changed using the
\fBstatus\&.showUntrackedFiles\fR
configuration variable documented in
\fBgit-config\fR(1)\&.
.RE
.PP
\fB\-v\fR, \fB\-\-verbose\fR
.RS 4
Show unified diff between the
\fBHEAD\fR
commit and what would be committed at the bottom of the commit message template to help the user describe the commit by reminding what changes the commit has\&. Note that this diff output doesn\(cqt have its lines prefixed with #\&. This diff will not be a part of the commit message\&. See the
\fBcommit\&.verbose\fR
configuration variable in
\fBgit-config\fR(1)\&.
.sp
If specified twice, show in addition the unified diff between what would be committed and the worktree files, i\&.e\&. the unstaged changes to tracked files\&.
.RE
.PP
\fB\-q\fR, \fB\-\-quiet\fR
.RS 4
Suppress commit summary message\&.
.RE
.PP
\fB\-\-dry\-run\fR
.RS 4
Do not create a commit, but show a list of paths that are to be committed, paths with local changes that will be left uncommitted and paths that are untracked\&.
.RE
.PP
\fB\-\-status\fR
.RS 4
Include the output of
\fBgit-status\fR(1)
in the commit message template when using an editor to prepare the commit message\&. Defaults to on, but can be used to override configuration variable
\fBcommit\&.status\fR\&.
.RE
.PP
\fB\-\-no\-status\fR
.RS 4
Do not include the output of
\fBgit-status\fR(1)
in the commit message template when using an editor to prepare the default commit message\&.
.RE
.PP
\fB\-S\fR[\fI<key\-id>\fR], \fB\-\-gpg\-sign\fR[\fB=\fR\fI<key\-id>\fR], \fB\-\-no\-gpg\-sign\fR
.RS 4
GPG\-sign commits\&. The
\fI<key\-id>\fR
is optional and defaults to the committer identity; if specified, it must be stuck to the option without a space\&.
\fB\-\-no\-gpg\-sign\fR
is useful to countermand both
\fBcommit\&.gpgSign\fR
configuration variable, and earlier
\fB\-\-gpg\-sign\fR\&.
.RE
.PP
\fB\-\-\fR
.RS 4
Do not interpret any more arguments as options\&.
.RE
.PP
\fI<pathspec>\fR\&.\&.\&.
.RS 4
When
\fI<pathspec>\fR
is given on the command line, commit the contents of the files that match the pathspec without recording the changes already added to the index\&. The contents of these files are also staged for the next commit on top of what have been staged before\&.
.sp
For more details, see the
\fIpathspec\fR
entry in
\fBgitglossary\fR(7)\&.
.RE
.SH "EXAMPLES"
.sp
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 \fBgit\fR \fBadd\fR\&. A file can be reverted back, only in the index but not in the working tree, to that of the last commit with \fBgit\fR \fBrestore\fR \fB\-\-staged\fR \fI<file>\fR, which effectively reverts \fBgit\fR \fBadd\fR and prevents the changes to this file from participating in the next commit\&. After building the state to be committed incrementally with these commands, \fBgit\fR \fBcommit\fR (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:
.sp
.if n \{\
.RS 4
.\}
.nf
$ edit hello\&.c
$ git rm goodbye\&.c
$ git add hello\&.c
$ git commit
.fi
.if n \{\
.RE
.\}
.sp
Instead of staging files after each individual change, you can tell \fBgit\fR \fBcommit\fR to notice the changes to the files whose contents are tracked in your working tree and do corresponding \fBgit\fR \fBadd\fR and \fBgit\fR \fBrm\fR for you\&. That is, this example does the same as the earlier example if there is no other change in your working tree:
.sp
.if n \{\
.RS 4
.\}
.nf
$ edit hello\&.c
$ rm goodbye\&.c
$ git commit \-a
.fi
.if n \{\
.RE
.\}
.sp
The command \fBgit\fR \fBcommit\fR \fB\-a\fR first looks at your working tree, notices that you have modified \fBhello\&.c\fR and removed \fBgoodbye\&.c\fR, and performs necessary \fBgit\fR \fBadd\fR and \fBgit\fR \fBrm\fR for you\&.
.sp
After staging changes to many files, you can alter the order the changes are recorded in, by giving pathnames to \fBgit\fR \fBcommit\fR\&. When pathnames are given, the command makes a commit that only records the changes made to the named paths:
.sp
.if n \{\
.RS 4
.\}
.nf
$ edit hello\&.c hello\&.h
$ git add hello\&.c hello\&.h
$ edit Makefile
$ git commit Makefile
.fi
.if n \{\
.RE
.\}
.sp
This makes a commit that records the modification to \fBMakefile\fR\&. The changes staged for \fBhello\&.c\fR and \fBhello\&.h\fR are not included in the resulting commit\&. However, their changes are not lost \(em they are still staged and merely held back\&. After the above sequence, if you do:
.sp
.if n \{\
.RS 4
.\}
.nf
$ git commit
.fi
.if n \{\
.RE
.\}
.sp
this second commit would record the changes to \fBhello\&.c\fR and \fBhello\&.h\fR as expected\&.
.sp
After a merge (initiated by \fBgit\fR \fBmerge\fR or \fBgit\fR \fBpull\fR) stops because of conflicts, cleanly merged paths are already staged to be committed for you, and paths that conflicted are left in unmerged state\&. You would have to first check which paths are conflicting with \fBgit\fR \fBstatus\fR and after fixing them manually in your working tree, you would stage the result as usual with \fBgit\fR \fBadd\fR:
.sp
.if n \{\
.RS 4
.\}
.nf
$ git status | grep unmerged
unmerged: hello\&.c
$ edit hello\&.c
$ git add hello\&.c
.fi
.if n \{\
.RE
.\}
.sp
After resolving conflicts and staging the result, \fBgit\fR \fBls\-files\fR \fB\-u\fR would stop mentioning the conflicted path\&. When you are done, run \fBgit\fR \fBcommit\fR to finally record the merge:
.sp
.if n \{\
.RS 4
.\}
.nf
$ git commit
.fi
.if n \{\
.RE
.\}
.sp
As with the case to record your own changes, you can use \fB\-a\fR option to save typing\&. One difference is that during a merge resolution, you cannot use \fBgit\fR \fBcommit\fR with pathnames to alter the order the changes are committed, because the merge should be recorded as a single commit\&. In fact, the command refuses to run when given pathnames (but see \fB\-i\fR option)\&.
.SH "COMMIT INFORMATION"
.sp
Author and committer information is taken from the following environment variables, if set:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBGIT_AUTHOR_NAME\fR
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBGIT_AUTHOR_EMAIL\fR
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBGIT_AUTHOR_DATE\fR
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBGIT_COMMITTER_NAME\fR
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBGIT_COMMITTER_EMAIL\fR
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
\fBGIT_COMMITTER_DATE\fR
.RE
.sp
(nb "<", ">" and "\en"s are stripped)
.sp
The author and committer names are by convention some form of a personal name (that is, the name by which other humans refer to you), although Git does not enforce or require any particular form\&. Arbitrary Unicode may be used, subject to the constraints listed above\&. This name has no effect on authentication; for that, see the \fBcredential\&.username\fR variable in \fBgit-config\fR(1)\&.
.sp
In case (some of) these environment variables are not set, the information is taken from the configuration items \fBuser\&.name\fR and \fBuser\&.email\fR, or, if not present, the environment variable \fBEMAIL\fR, or, if that is not set, system user name and the hostname used for outgoing mail (taken from \fB/etc/mailname\fR and falling back to the fully qualified hostname when that file does not exist)\&.
.sp
The \fBauthor\&.name\fR and \fBcommitter\&.name\fR and their corresponding email options override \fBuser\&.name\fR and \fBuser\&.email\fR if set and are overridden themselves by the environment variables\&.
.sp
The typical usage is to set just the \fBuser\&.name\fR and \fBuser\&.email\fR variables; the other options are provided for more complex use cases\&.
.SH "DATE FORMATS"
.sp
The \fBGIT_AUTHOR_DATE\fR and \fBGIT_COMMITTER_DATE\fR environment variables support the following date formats:
.PP
Git internal format
.RS 4
It is
\fI<unix\-timestamp>\fR
\fI<time\-zone\-offset>\fR, where
\fI<unix\-timestamp>\fR
is the number of seconds since the UNIX epoch\&.
\fI<time\-zone\-offset>\fR
is a positive or negative offset from UTC\&. For example CET (which is 1 hour ahead of UTC) is
\fB+0100\fR\&.
.RE
.PP
RFC 2822
.RS 4
The standard date format as described by RFC 2822, for example
\fBThu\fR,
\fB07\fR
\fBApr\fR
\fB2005\fR
\fB22:13:13\fR
\fB+0200\fR\&.
.RE
.PP
ISO 8601
.RS 4
Time and date specified by the ISO 8601 standard, for example
\fB2005\-04\-07T22:13:13\fR\&. The parser accepts a space instead of the
\fBT\fR
character as well\&. Fractional parts of a second will be ignored, for example
\fB2005\-04\-07T22:13:13\&.019\fR
will be treated as
\fB2005\-04\-07T22:13:13\fR\&.
.if n \{\
.sp
.\}
.RS 4
.it 1 an-trap
.nr an-no-space-flag 1
.nr an-break-flag 1
.br
.ps +1
\fBNote\fR
.ps -1
.br
In addition, the date part is accepted in the following formats:
\fBYYYY\&.MM\&.DD\fR,
\fBMM/DD/YYYY\fR
and
\fBDD\&.MM\&.YYYY\fR\&.
.sp .5v
.RE
.RE
.sp
In addition to recognizing all date formats above, the \fB\-\-date\fR option will also try to make sense of other, more human\-centric date formats, such as relative dates like "yesterday" or "last Friday at noon"\&.
.SH "DISCUSSION"
.sp
Though not required, it\(cqs a good idea to begin the commit message with a single short (no more than 50 characters) line summarizing the change, followed by a blank line and then a more thorough description\&. The text up to the first blank line in a commit message is treated as the commit title, and that title is used throughout Git\&. For example, \fBgit-format-patch\fR(1) turns a commit into email, and it uses the title on the Subject line and the rest of the commit in the body\&.
.sp
Git is to some extent character encoding agnostic\&.
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
The contents of the blob objects are uninterpreted sequences of bytes\&. There is no encoding translation at the core level\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Path names are encoded in UTF\-8 normalization form C\&. This applies to tree objects, the index file, ref names, as well as path names in command line arguments, environment variables and config files (\&.\fBgit/config\fR
(see
\fBgit-config\fR(1)),
\fBgitignore\fR(5),
\fBgitattributes\fR(5)
and
\fBgitmodules\fR(5))\&.
.sp
Note that Git at the core level treats path names simply as sequences of non\-NUL bytes, there are no path name encoding conversions (except on Mac and Windows)\&. Therefore, using non\-ASCII path names will mostly work even on platforms and file systems that use legacy extended ASCII encodings\&. However, repositories created on such systems will not work properly on UTF\-8\-based systems (e\&.g\&. Linux, Mac, Windows) and vice versa\&. Additionally, many Git\-based tools simply assume path names to be UTF\-8 and will fail to display other encodings correctly\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Commit log messages are typically encoded in UTF\-8, but other extended ASCII encodings are also supported\&. This includes ISO\-8859\-x, CP125x and many others, but
\fInot\fR
UTF\-16/32, EBCDIC and CJK multi\-byte encodings (GBK, Shift\-JIS, Big5, EUC\-x, CP9xx etc\&.)\&.
.RE
.sp
Although we encourage that the commit log messages are encoded in UTF\-8, both the core and Git Porcelain are designed not to force UTF\-8 on projects\&. If all participants of a particular project find it more convenient to use legacy encodings, Git does not forbid it\&. However, there are a few things to keep in mind\&.
.sp
.RS 4
.ie n \{\
\h'-04' 1.\h'+01'\c
.\}
.el \{\
.sp -1
.IP "  1." 4.2
.\}
\fBgit\fR
\fBcommit\fR
and
\fBgit\fR
\fBcommit\-tree\fR
issue a warning if the commit log message given to it does not look like a valid UTF\-8 string, unless you explicitly say your project uses a legacy encoding\&. The way to say this is to have
\fBi18n\&.commitEncoding\fR
in \&.\fBgit/config\fR
file, like this:
.sp
.if n \{\
.RS 4
.\}
.nf
[i18n]
        commitEncoding = ISO\-8859\-1
.fi
.if n \{\
.RE
.\}
.sp
Commit objects created with the above setting record the value of
\fBi18n\&.commitEncoding\fR
in their
\fBencoding\fR
header\&. This is to help other people who look at them later\&. Lack of this header implies that the commit log message is encoded in UTF\-8\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04' 2.\h'+01'\c
.\}
.el \{\
.sp -1
.IP "  2." 4.2
.\}
\fBgit\fR
\fBlog\fR,
\fBgit\fR
\fBshow\fR,
\fBgit\fR
\fBblame\fR
and friends look at the
\fBencoding\fR
header of a commit object, and try to re\-code the log message into UTF\-8 unless otherwise specified\&. You can specify the desired output encoding with
\fBi18n\&.logOutputEncoding\fR
in \&.\fBgit/config\fR
file, like this:
.sp
.if n \{\
.RS 4
.\}
.nf
[i18n]
        logOutputEncoding = ISO\-8859\-1
.fi
.if n \{\
.RE
.\}
.sp
If you do not have this configuration variable, the value of
\fBi18n\&.commitEncoding\fR
is used instead\&.
.RE
.sp
Note that we deliberately chose not to re\-code the commit log message when a commit is made to force UTF\-8 at the commit object level, because re\-coding to UTF\-8 is not necessarily a reversible operation\&.
.SH "ENVIRONMENT AND CONFIGURATION VARIABLES"
.sp
The editor used to edit the commit log message will be chosen from the \fBGIT_EDITOR\fR environment variable, the \fBcore\&.editor\fR configuration variable, the \fBVISUAL\fR environment variable, or the \fBEDITOR\fR environment variable (in that order)\&. See \fBgit-var\fR(1) for details\&.
.sp
Everything above this line in this section isn\(cqt included from the \fBgit-config\fR(1) documentation\&. The content that follows is the same as what\(cqs found there:
.PP
\fBcommit\&.cleanup\fR
.RS 4
This setting overrides the default of the
\fB\-\-cleanup\fR
option in
\fBgit\fR
\fBcommit\fR\&. Changing the default can be useful when you always want to keep lines that begin with the comment character (\fBcore\&.commentChar\fR, default #) in your log message, in which case you would do
\fBgit\fR
\fBconfig\fR
\fBcommit\&.cleanup\fR
\fBwhitespace\fR
(note that you will have to remove the help lines that begin with the comment character in the commit log template yourself, if you do this)\&.
.RE
.PP
\fBcommit\&.gpgSign\fR
.RS 4
A boolean to specify whether all commits should be GPG signed\&. Use of this option when doing operations such as rebase can result in a large number of commits being signed\&. It may be convenient to use an agent to avoid typing your GPG passphrase several times\&.
.RE
.PP
\fBcommit\&.status\fR
.RS 4
A boolean to enable/disable inclusion of status information in the commit message template when using an editor to prepare the commit message\&. Defaults to
\fBtrue\fR\&.
.RE
.PP
\fBcommit\&.template\fR
.RS 4
Specify the pathname of a file to use as the template for new commit messages\&.
.RE
.PP
\fBcommit\&.verbose\fR
.RS 4
A boolean or int to specify the level of verbosity with
\fBgit\fR
\fBcommit\fR\&.
.RE
.SH "HOOKS"
.sp
This command can run \fBcommit\-msg\fR, \fBprepare\-commit\-msg\fR, \fBpre\-commit\fR, \fBpost\-commit\fR and \fBpost\-rewrite\fR hooks\&. See \fBgithooks\fR(5) for more information\&.
.SH "FILES"
.PP
\fB$GIT_DIR/COMMIT_EDITMSG\fR
.RS 4
This file contains the commit message of a commit in progress\&. If
\fBgit\fR
\fBcommit\fR
exits due to an error before creating a commit, any commit message that has been provided by the user (e\&.g\&., in an editor session) will be available in this file, but will be overwritten by the next invocation of
\fBgit\fR
\fBcommit\fR\&.
.RE
.SH "SEE ALSO"
.sp
\fBgit-add\fR(1), \fBgit-rm\fR(1), \fBgit-mv\fR(1), \fBgit-merge\fR(1), \fBgit-commit-tree\fR(1)
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite
