:orphan:

hg commit
=========

commit the specified files or all outstanding changes
-----------------------------------------------------

Commit changes to the given files into the repository. Unlike a
centralized SCM, this operation is a local operation. See
:hg:`push` for a way to actively distribute your changes.

If a list of files is omitted, all changes reported by :hg:`status`
will be committed.

If you are committing the result of a merge, do not provide any
filenames or -I/-X filters.

If no commit message is specified, Mercurial starts your
configured editor where you can enter a message. In case your
commit fails, you will find a backup of your message in
``.hg/last-message.txt``.

The --close-branch flag can be used to mark the current branch
head closed. When all heads of a branch are closed, the branch
will be considered closed and no longer listed.

The --amend flag can be used to amend the parent of the
working directory with a new commit that contains the changes
in the parent in addition to those currently reported by :hg:`status`,
if there are any. The old commit is stored in a backup bundle in
``.hg/strip-backup`` (see :hg:`help bundle` and :hg:`help unbundle`
on how to restore it).

Message, user and date are taken from the amended commit unless
specified. When a message isn't specified on the command line,
the editor will open with the message of the amended commit.

It is not possible to amend public changesets (see :hg:`help phases`)
or changesets that have children.

See :hg:`help dates` for a list of formats valid for -d/--date.

Returns 0 on success, 1 if nothing changed.

.. container:: verbose

  Examples:

  - commit all files ending in .py::

      hg commit --include "set:**.py"

  - commit all non-binary files::

      hg commit --exclude "set:binary()"

  - amend the current commit and set the date to now::

      hg commit --amend --date now
