2005-09-08 08:26:23 +08:00
|
|
|
git-commit(1)
|
|
|
|
=============
|
2005-08-09 08:39:18 +08:00
|
|
|
|
|
|
|
NAME
|
|
|
|
----
|
2007-01-19 07:53:37 +08:00
|
|
|
git-commit - Record changes to the repository
|
2005-08-09 08:39:18 +08:00
|
|
|
|
|
|
|
SYNOPSIS
|
|
|
|
--------
|
2006-01-01 01:37:15 +08:00
|
|
|
[verse]
|
2011-05-08 01:58:07 +08:00
|
|
|
'git commit' [-a | --interactive | --patch] [-s] [-v] [-u<mode>] [--amend]
|
|
|
|
[--dry-run] [(-c | -C | --fixup | --squash) <commit>]
|
|
|
|
[-F <file> | -m <msg>] [--reset-author] [--allow-empty]
|
|
|
|
[--allow-empty-message] [--no-verify] [-e] [--author=<author>]
|
|
|
|
[--date=<date>] [--cleanup=<mode>] [--status | --no-status]
|
|
|
|
[-i | -o] [--] [<file>...]
|
2005-08-09 08:39:18 +08:00
|
|
|
|
|
|
|
DESCRIPTION
|
|
|
|
-----------
|
2008-07-03 13:13:45 +08:00
|
|
|
Stores the current contents of the index in a new commit along
|
|
|
|
with a log message from the user describing the changes.
|
2005-08-09 08:39:18 +08:00
|
|
|
|
2007-08-06 12:34:02 +08:00
|
|
|
The content to be added can be specified in several ways:
|
2007-08-06 20:56:32 +08:00
|
|
|
|
2010-01-10 07:33:00 +08:00
|
|
|
1. by using 'git add' to incrementally "add" changes to the
|
2007-08-06 12:34:02 +08:00
|
|
|
index before using the 'commit' command (Note: even modified
|
2006-12-09 13:48:07 +08:00
|
|
|
files must be "added");
|
2006-03-18 08:25:09 +08:00
|
|
|
|
2010-01-10 07:33:00 +08:00
|
|
|
2. by using 'git rm' to remove files from the working tree
|
2007-08-06 12:34:02 +08:00
|
|
|
and the index, again before using the 'commit' command;
|
2006-12-09 13:48:07 +08:00
|
|
|
|
2007-08-06 12:34:02 +08:00
|
|
|
3. by listing files as arguments to the 'commit' command, in which
|
|
|
|
case the commit will ignore changes staged in the index, and instead
|
2008-11-19 06:33:44 +08:00
|
|
|
record the current content of the listed files (which must already
|
|
|
|
be known to git);
|
2006-12-09 13:48:07 +08:00
|
|
|
|
2007-08-06 12:34:02 +08:00
|
|
|
4. by using the -a switch with the 'commit' 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;
|
2006-12-09 13:48:07 +08:00
|
|
|
|
2011-05-08 01:58:07 +08:00
|
|
|
5. by using the --interactive or --patch switches with the 'commit' command
|
|
|
|
to decide one by one which files or hunks should be part of the commit,
|
|
|
|
before finalizing the operation. See the ``Interactive Mode`` section of
|
|
|
|
linkgit:git-add[1] to learn how to operate these modes.
|
2007-03-05 15:57:53 +08:00
|
|
|
|
2009-08-15 16:58:37 +08:00
|
|
|
The `--dry-run` option can be used to obtain a
|
2006-12-09 13:48:07 +08:00
|
|
|
summary of what is included by any of the above for the next
|
2009-08-15 16:58:37 +08:00
|
|
|
commit by giving the same set of parameters (options and paths).
|
2006-12-09 13:48:07 +08:00
|
|
|
|
2008-07-01 02:56:34 +08:00
|
|
|
If you make a commit and then find a mistake immediately after
|
2010-01-10 07:33:00 +08:00
|
|
|
that, you can recover from it with 'git reset'.
|
2006-03-18 08:25:09 +08:00
|
|
|
|
2005-09-03 12:19:26 +08:00
|
|
|
|
2005-08-09 08:39:18 +08:00
|
|
|
OPTIONS
|
|
|
|
-------
|
2008-06-08 09:36:09 +08:00
|
|
|
-a::
|
|
|
|
--all::
|
2006-12-09 13:48:07 +08:00
|
|
|
Tell the command to automatically stage files that have
|
|
|
|
been modified and deleted, but new files you have not
|
|
|
|
told git about are not affected.
|
2005-08-09 08:39:18 +08:00
|
|
|
|
2011-05-08 01:58:07 +08:00
|
|
|
-p::
|
|
|
|
--patch::
|
|
|
|
Use the interactive patch selection interface to chose
|
|
|
|
which changes to commit. See linkgit:git-add[1] for
|
|
|
|
details.
|
|
|
|
|
2008-06-08 09:36:09 +08:00
|
|
|
-C <commit>::
|
|
|
|
--reuse-message=<commit>::
|
2008-06-08 09:36:08 +08:00
|
|
|
Take an existing commit object, and reuse the log message
|
2005-08-09 08:39:18 +08:00
|
|
|
and the authorship information (including the timestamp)
|
2008-06-08 09:36:08 +08:00
|
|
|
when creating the commit.
|
2005-08-09 08:39:18 +08:00
|
|
|
|
2008-06-08 09:36:09 +08:00
|
|
|
-c <commit>::
|
|
|
|
--reedit-message=<commit>::
|
2008-06-08 09:36:08 +08:00
|
|
|
Like '-C', but with '-c' the editor is invoked, so that
|
|
|
|
the user can further edit the commit message.
|
|
|
|
|
2010-11-03 03:59:09 +08:00
|
|
|
--fixup=<commit>::
|
|
|
|
Construct a commit message for use with `rebase --autosquash`.
|
|
|
|
The commit message will be the subject line from the specified
|
|
|
|
commit with a prefix of "fixup! ". See linkgit:git-rebase[1]
|
|
|
|
for details.
|
|
|
|
|
2010-11-03 03:59:11 +08:00
|
|
|
--squash=<commit>::
|
|
|
|
Construct a commit message for use with `rebase --autosquash`.
|
|
|
|
The commit message subject line is taken from the specified
|
|
|
|
commit with a prefix of "squash! ". Can be used with additional
|
|
|
|
commit message options (`-m`/`-c`/`-C`/`-F`). See
|
|
|
|
linkgit:git-rebase[1] for details.
|
|
|
|
|
2009-11-04 11:20:11 +08:00
|
|
|
--reset-author::
|
2011-02-20 12:12:29 +08:00
|
|
|
When used with -C/-c/--amend options, or when committing after a
|
|
|
|
a conflicting cherry-pick, declare that the authorship of the
|
|
|
|
resulting commit now belongs of the committer. This also renews
|
|
|
|
the author timestamp.
|
2009-11-04 11:20:11 +08:00
|
|
|
|
2009-09-05 16:59:56 +08:00
|
|
|
--short::
|
|
|
|
When doing a dry-run, give the output in the short-format. See
|
|
|
|
linkgit:git-status[1] for details. Implies `--dry-run`.
|
|
|
|
|
|
|
|
--porcelain::
|
|
|
|
When doing a dry-run, give the output in a porcelain-ready
|
|
|
|
format. See linkgit:git-status[1] for details. Implies
|
|
|
|
`--dry-run`.
|
|
|
|
|
|
|
|
-z::
|
|
|
|
When showing `short` or `porcelain` status output, terminate
|
|
|
|
entries in the status output with NUL, instead of LF. If no
|
|
|
|
format is given, implies the `--porcelain` output format.
|
|
|
|
|
2008-06-08 09:36:09 +08:00
|
|
|
-F <file>::
|
|
|
|
--file=<file>::
|
2005-08-09 08:39:18 +08:00
|
|
|
Take the commit message from the given file. Use '-' to
|
|
|
|
read the message from the standard input.
|
|
|
|
|
2008-06-07 19:06:45 +08:00
|
|
|
--author=<author>::
|
2010-06-07 07:31:34 +08:00
|
|
|
Override the commit author. Specify an explicit author using the
|
|
|
|
standard `A U Thor <author@example.com>` format. Otherwise <author>
|
|
|
|
is assumed to be a pattern and is used to search for an existing
|
|
|
|
commit by that author (i.e. rev-list --all -i --author=<author>);
|
|
|
|
the commit author is then copied from the first such commit found.
|
2006-02-05 16:07:44 +08:00
|
|
|
|
2009-12-03 06:16:18 +08:00
|
|
|
--date=<date>::
|
|
|
|
Override the author date used in the commit.
|
|
|
|
|
2008-06-08 09:36:09 +08:00
|
|
|
-m <msg>::
|
|
|
|
--message=<msg>::
|
2005-08-09 08:39:18 +08:00
|
|
|
Use the given <msg> as the commit message.
|
|
|
|
|
2008-06-08 09:36:09 +08:00
|
|
|
-t <file>::
|
|
|
|
--template=<file>::
|
2007-07-23 12:17:42 +08:00
|
|
|
Use the contents of the given file as the initial version
|
|
|
|
of the commit message. The editor is invoked and you can
|
|
|
|
make subsequent changes. If a message is specified using
|
2007-07-27 04:34:59 +08:00
|
|
|
the `-m` or `-F` options, this option has no effect. This
|
|
|
|
overrides the `commit.template` configuration variable.
|
2007-07-23 12:17:42 +08:00
|
|
|
|
2008-06-08 09:36:09 +08:00
|
|
|
-s::
|
|
|
|
--signoff::
|
2008-11-27 15:32:01 +08:00
|
|
|
Add Signed-off-by line by the committer at the end of the commit
|
2008-10-19 12:19:23 +08:00
|
|
|
log message.
|
2005-08-15 08:24:36 +08:00
|
|
|
|
2008-06-08 09:36:09 +08:00
|
|
|
-n::
|
|
|
|
--no-verify::
|
2007-12-08 19:38:08 +08:00
|
|
|
This option bypasses the pre-commit and commit-msg hooks.
|
2008-07-01 06:01:21 +08:00
|
|
|
See also linkgit:githooks[5].
|
2005-12-09 07:28:05 +08:00
|
|
|
|
2007-12-03 16:03:10 +08:00
|
|
|
--allow-empty::
|
|
|
|
Usually recording a commit that has the exact same tree as its
|
2007-12-04 05:35:26 +08:00
|
|
|
sole parent commit is a mistake, and the command prevents you
|
|
|
|
from making such a commit. This option bypasses the safety, and
|
2010-07-20 05:17:17 +08:00
|
|
|
is primarily for use by foreign SCM interface scripts.
|
2007-12-03 16:03:10 +08:00
|
|
|
|
2010-04-06 16:40:35 +08:00
|
|
|
--allow-empty-message::
|
|
|
|
Like --allow-empty this command is primarily for use by foreign
|
2010-07-20 05:17:17 +08:00
|
|
|
SCM interface scripts. It allows you to create a commit with an
|
2010-04-06 16:40:35 +08:00
|
|
|
empty commit message without using plumbing commands like
|
|
|
|
linkgit:git-commit-tree[1].
|
|
|
|
|
2007-12-23 02:46:24 +08:00
|
|
|
--cleanup=<mode>::
|
|
|
|
This option sets how the commit message is cleaned up.
|
|
|
|
The '<mode>' can be one of 'verbatim', 'whitespace', 'strip',
|
|
|
|
and 'default'. The 'default' mode will strip leading and
|
|
|
|
trailing empty lines and #commentary from the commit message
|
|
|
|
only if the message is to be edited. Otherwise only whitespace
|
|
|
|
removed. The 'verbatim' mode does not change message at all,
|
|
|
|
'whitespace' removes just leading/trailing whitespace lines
|
|
|
|
and 'strip' removes both whitespace and commentary.
|
|
|
|
|
2008-06-08 09:36:09 +08:00
|
|
|
-e::
|
|
|
|
--edit::
|
2005-09-03 12:19:26 +08:00
|
|
|
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.
|
|
|
|
|
2006-04-06 04:28:28 +08:00
|
|
|
--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.
|
|
|
|
+
|
2006-04-06 06:25:17 +08:00
|
|
|
--
|
2006-04-06 04:28:28 +08:00
|
|
|
It is a rough equivalent for:
|
2006-04-06 06:25:17 +08:00
|
|
|
------
|
2006-04-06 04:28:28 +08:00
|
|
|
$ git reset --soft HEAD^
|
|
|
|
$ ... do something else to come up with the right tree ...
|
|
|
|
$ git commit -c ORIG_HEAD
|
2006-04-06 06:25:17 +08:00
|
|
|
|
|
|
|
------
|
2006-04-06 04:28:28 +08:00
|
|
|
but can be used to amend a merge commit.
|
2006-04-06 06:25:17 +08:00
|
|
|
--
|
2008-09-14 00:11:01 +08:00
|
|
|
+
|
|
|
|
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 linkgit:git-rebase[1].)
|
2006-04-06 04:28:28 +08:00
|
|
|
|
2008-06-08 09:36:09 +08:00
|
|
|
-i::
|
|
|
|
--include::
|
2006-12-09 13:48:07 +08:00
|
|
|
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.
|
2005-08-09 08:39:18 +08:00
|
|
|
|
2008-06-08 09:36:09 +08:00
|
|
|
-o::
|
|
|
|
--only::
|
2008-04-10 19:33:09 +08:00
|
|
|
Make a commit only from the paths specified on the
|
|
|
|
command line, disregarding any contents that have been
|
|
|
|
staged so far. This is the default mode of operation of
|
2010-01-10 07:33:00 +08:00
|
|
|
'git commit' if any paths are given on the command line,
|
2008-04-10 19:33:09 +08:00
|
|
|
in which case this option can be omitted.
|
|
|
|
If this option is specified together with '--amend', then
|
2008-12-19 20:14:18 +08:00
|
|
|
no paths need to be specified, which can be used to amend
|
2008-04-10 19:33:09 +08:00
|
|
|
the last commit without committing changes that have
|
|
|
|
already been staged.
|
|
|
|
|
2008-06-23 05:32:27 +08:00
|
|
|
-u[<mode>]::
|
|
|
|
--untracked-files[=<mode>]::
|
2011-02-22 04:05:25 +08:00
|
|
|
Show untracked files.
|
2008-06-05 16:31:19 +08:00
|
|
|
+
|
2011-02-22 04:05:25 +08:00
|
|
|
The mode parameter is optional (defaults to 'all'), and is used to
|
|
|
|
specify the handling of untracked files; when -u is not used, the
|
|
|
|
default is 'normal', i.e. show untracked files and directories.
|
2010-02-15 20:33:06 +08:00
|
|
|
+
|
|
|
|
The possible options are:
|
2008-06-05 16:31:19 +08:00
|
|
|
+
|
2008-06-05 20:22:56 +08:00
|
|
|
- 'no' - Show no untracked files
|
2008-06-05 16:31:19 +08:00
|
|
|
- 'normal' - Shows untracked files and directories
|
|
|
|
- 'all' - Also shows individual files in untracked directories.
|
2008-06-05 20:47:50 +08:00
|
|
|
+
|
2011-02-22 04:05:25 +08:00
|
|
|
The default can be changed using the status.showUntrackedFiles
|
|
|
|
configuration variable documented in linkgit:git-config[1].
|
2007-07-13 07:54:08 +08:00
|
|
|
|
2008-06-08 09:36:09 +08:00
|
|
|
-v::
|
|
|
|
--verbose::
|
2007-07-13 07:54:08 +08:00
|
|
|
Show unified diff between the HEAD commit and what
|
|
|
|
would be committed at the bottom of the commit message
|
|
|
|
template. Note that this diff output doesn't have its
|
|
|
|
lines prefixed with '#'.
|
|
|
|
|
2008-06-08 09:36:09 +08:00
|
|
|
-q::
|
|
|
|
--quiet::
|
2007-01-17 23:32:41 +08:00
|
|
|
Suppress commit summary message.
|
2006-12-15 12:15:44 +08:00
|
|
|
|
2009-08-08 14:03:36 +08:00
|
|
|
--dry-run::
|
|
|
|
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.
|
|
|
|
|
2009-12-08 06:45:27 +08:00
|
|
|
--status::
|
|
|
|
Include the output of linkgit:git-status[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 commit.status.
|
|
|
|
|
|
|
|
--no-status::
|
|
|
|
Do not include the output of linkgit:git-status[1] in the
|
|
|
|
commit message template when using an editor to prepare the
|
|
|
|
default commit message.
|
|
|
|
|
2006-05-06 03:05:24 +08:00
|
|
|
\--::
|
2006-02-13 15:55:07 +08:00
|
|
|
Do not interpret any more arguments as options.
|
|
|
|
|
|
|
|
<file>...::
|
2006-12-09 13:48:07 +08:00
|
|
|
When files are given on the command line, the command
|
|
|
|
commits the contents of the named files, without
|
|
|
|
recording the changes already staged. The contents of
|
|
|
|
these files are also staged for the next commit on top
|
|
|
|
of what have been staged before.
|
2005-12-17 10:23:33 +08:00
|
|
|
|
2009-12-03 07:49:19 +08:00
|
|
|
:git-commit: 1
|
|
|
|
include::date-formats.txt[]
|
2005-12-17 10:23:33 +08:00
|
|
|
|
2006-12-09 13:48:07 +08:00
|
|
|
EXAMPLES
|
|
|
|
--------
|
|
|
|
When recording your own work, the contents of modified files in
|
|
|
|
your working tree are temporarily stored to a staging area
|
2010-01-10 07:33:00 +08:00
|
|
|
called the "index" with 'git add'. A file can be
|
2007-11-12 12:43:00 +08:00
|
|
|
reverted back, only in the index but not in the working tree,
|
Documentation: quote double-dash for AsciiDoc
AsciiDoc versions since 5.0.6 treat a double-dash surrounded by spaces
(outside of verbatim environments) as a request to insert an em dash.
Such versions also treat the three-character sequence "\--", when not
followed by another dash, as a request to insert two literal minus
signs. Thus from time to time there have been patches to add
backslashes to AsciiDoc markup to escape double-dashes that are meant
to be represent '--' characters used literally on the command line;
see v1.4.0-rc1~174, Fix up docs where "--" isn't displayed correctly,
2006-05-05, for example.
AsciiDoc 6.0.3 (2005-04-20) made life harder by also treating
double-dashes without surrounding whitespace as markup for an em dash,
though only when formatting for backends other than the manpages
(e.g., HTML). Many pages needed to be changed to use a backslash
before the "--" in names of command-line flags like "--add" (see
v0.99.6~37, Update tutorial, 2005-08-30).
AsciiDoc 8.3.0 (2008-11-29) refined the em-dash rule to avoid that
requirement. Double-dashes without surrounding spaces are not
rendered as em dashes any more unless bordered on both sides by
alphanumeric characters. The unescaped markup for option names (e.g.,
"--add") works fine, and many instances of this style have leaked into
Documentation/; git's HTML documentation contains many spurious em
dashes when formatted by an older toolchain. (This patch will not
change that.)
The upshot: "--" as an isolated word and in phrases like "git
web--browse" must be escaped if it is not to be rendered as an em dash
by current asciidoc. Use "\--" to avoid such misformatting in
sentences in which "--" represents a literal double-minus command line
argument that separates options and revs from pathspecs, and use
"{litdd}" in cases where the double-dash is embedded in the command
name. The latter is just for consistency with v1.7.3-rc0~13^2 (Work
around em-dash handling in newer AsciiDoc, 2010-08-23).
List of lines to fix found by grepping manpages for "(em".
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Improved-by: Junio C Hamano <gitster@pobox.com>
Improved-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2011-06-29 13:35:10 +08:00
|
|
|
to that of the last commit with `git reset HEAD \-- <file>`,
|
2010-01-10 07:33:00 +08:00
|
|
|
which effectively reverts 'git add' and prevents the changes to
|
2007-11-12 12:43:00 +08:00
|
|
|
this file from participating in the next commit. After building
|
|
|
|
the state to be committed incrementally with these commands,
|
|
|
|
`git commit` (without any pathname parameter) is used to record what
|
2006-12-09 13:48:07 +08:00
|
|
|
has been staged so far. This is the most basic form of the
|
|
|
|
command. An example:
|
|
|
|
|
|
|
|
------------
|
|
|
|
$ edit hello.c
|
|
|
|
$ git rm goodbye.c
|
|
|
|
$ git add hello.c
|
|
|
|
$ git commit
|
|
|
|
------------
|
|
|
|
|
|
|
|
Instead of staging files after each individual change, you can
|
|
|
|
tell `git commit` to notice the changes to the files whose
|
|
|
|
contents are tracked in
|
|
|
|
your working tree and do corresponding `git add` and `git rm`
|
|
|
|
for you. That is, this example does the same as the earlier
|
|
|
|
example if there is no other change in your working tree:
|
|
|
|
|
|
|
|
------------
|
|
|
|
$ edit hello.c
|
|
|
|
$ rm goodbye.c
|
|
|
|
$ git commit -a
|
|
|
|
------------
|
|
|
|
|
|
|
|
The command `git commit -a` first looks at your working tree,
|
|
|
|
notices that you have modified hello.c and removed goodbye.c,
|
|
|
|
and performs necessary `git add` and `git rm` for you.
|
|
|
|
|
|
|
|
After staging changes to many files, you can alter the order the
|
|
|
|
changes are recorded in, by giving pathnames to `git commit`.
|
|
|
|
When pathnames are given, the command makes a commit that
|
|
|
|
only records the changes made to the named paths:
|
|
|
|
|
|
|
|
------------
|
|
|
|
$ edit hello.c hello.h
|
|
|
|
$ git add hello.c hello.h
|
|
|
|
$ edit Makefile
|
|
|
|
$ git commit Makefile
|
|
|
|
------------
|
|
|
|
|
|
|
|
This makes a commit that records the modification to `Makefile`.
|
|
|
|
The changes staged for `hello.c` and `hello.h` are not included
|
|
|
|
in the resulting commit. However, their changes are not lost --
|
|
|
|
they are still staged and merely held back. After the above
|
|
|
|
sequence, if you do:
|
|
|
|
|
|
|
|
------------
|
|
|
|
$ git commit
|
|
|
|
------------
|
|
|
|
|
|
|
|
this second commit would record the changes to `hello.c` and
|
|
|
|
`hello.h` as expected.
|
|
|
|
|
2010-01-10 07:33:00 +08:00
|
|
|
After a merge (initiated by 'git merge' or 'git pull') stops
|
2008-07-01 02:56:34 +08:00
|
|
|
because of conflicts, cleanly merged
|
2006-12-09 13:48:07 +08:00
|
|
|
paths are already staged to be committed for you, and paths that
|
|
|
|
conflicted are left in unmerged state. You would have to first
|
2010-01-10 07:33:00 +08:00
|
|
|
check which paths are conflicting with 'git status'
|
2006-12-09 13:48:07 +08:00
|
|
|
and after fixing them manually in your working tree, you would
|
2010-01-10 07:33:00 +08:00
|
|
|
stage the result as usual with 'git add':
|
2006-12-09 13:48:07 +08:00
|
|
|
|
|
|
|
------------
|
|
|
|
$ git status | grep unmerged
|
|
|
|
unmerged: hello.c
|
|
|
|
$ edit hello.c
|
|
|
|
$ git add hello.c
|
|
|
|
------------
|
|
|
|
|
|
|
|
After resolving conflicts and staging the result, `git ls-files -u`
|
|
|
|
would stop mentioning the conflicted path. When you are done,
|
|
|
|
run `git commit` to finally record the merge:
|
|
|
|
|
|
|
|
------------
|
|
|
|
$ git commit
|
|
|
|
------------
|
|
|
|
|
|
|
|
As with the case to record your own changes, you can use `-a`
|
|
|
|
option to save typing. One difference is that during a merge
|
|
|
|
resolution, you cannot use `git commit` 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 `-i` option).
|
|
|
|
|
|
|
|
|
2006-12-30 18:22:38 +08:00
|
|
|
DISCUSSION
|
|
|
|
----------
|
|
|
|
|
2007-01-17 14:53:28 +08:00
|
|
|
Though not required, it's a good idea to begin the commit message
|
|
|
|
with a single short (less than 50 character) line summarizing the
|
|
|
|
change, followed by a blank line and then a more thorough description.
|
|
|
|
Tools that turn commits into email, for example, use the first line
|
|
|
|
on the Subject: line and the rest of the commit in the body.
|
|
|
|
|
2006-12-30 18:22:38 +08:00
|
|
|
include::i18n.txt[]
|
|
|
|
|
2007-07-20 13:09:35 +08:00
|
|
|
ENVIRONMENT AND CONFIGURATION VARIABLES
|
|
|
|
---------------------------------------
|
|
|
|
The editor used to edit the commit log message will be chosen from the
|
|
|
|
GIT_EDITOR environment variable, the core.editor configuration variable, the
|
|
|
|
VISUAL environment variable, or the EDITOR environment variable (in that
|
2009-10-31 09:42:34 +08:00
|
|
|
order). See linkgit:git-var[1] for details.
|
2006-12-09 13:48:07 +08:00
|
|
|
|
|
|
|
HOOKS
|
|
|
|
-----
|
2008-02-05 15:04:18 +08:00
|
|
|
This command can run `commit-msg`, `prepare-commit-msg`, `pre-commit`,
|
2008-07-01 06:01:21 +08:00
|
|
|
and `post-commit` hooks. See linkgit:githooks[5] for more
|
2006-12-09 13:48:07 +08:00
|
|
|
information.
|
2006-02-05 16:07:44 +08:00
|
|
|
|
|
|
|
|
2006-12-09 13:48:07 +08:00
|
|
|
SEE ALSO
|
|
|
|
--------
|
2007-12-29 14:20:38 +08:00
|
|
|
linkgit:git-add[1],
|
|
|
|
linkgit:git-rm[1],
|
|
|
|
linkgit:git-mv[1],
|
|
|
|
linkgit:git-merge[1],
|
|
|
|
linkgit:git-commit-tree[1]
|
2006-02-05 16:07:44 +08:00
|
|
|
|
2005-08-09 08:39:18 +08:00
|
|
|
GIT
|
|
|
|
---
|
2008-06-06 15:07:32 +08:00
|
|
|
Part of the linkgit:git[1] suite
|