In
version control
In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
systems, a commit is an operation which sends the latest changes of the source code to the
repository
Repository may refer to:
Archives and online databases
* Content repository, a database with an associated set of data management tools, allowing application-independent access to the content
* Disciplinary repository (or subject repository), an ...
, making these changes part of the head revision of the repository. Unlike
commits in data management, commits in version control systems are kept in the repository indefinitely. Thus, when other users do an
update
or a
checkout
from the repository, they will receive the latest committed version, unless they specify that they wish to retrieve a previous version of the source code in the repository. Version control systems allow rolling back to previous versions easily. In this context, a commit within a version control system is protected as it is easily rolled back, even after the commit has been applied.
Usage
Git
To commit a change in
git
Git () is a distributed version control system: tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data in ...
on the
command line
A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
, assuming git is installed, the following command is run:
git commit -m 'commit message'
This is also assuming that the files within the current directory have been staged as such:
git add .
The above command adds all of the files in the working directory to be staged for the git commit. After the commit has been applied, the last step is to push the commit to the given
software repository
A software repository, or repo for short, is a storage location for software packages. Often a table of contents is also stored, along with metadata. A software repository is typically managed by source control or repository managers. Package ...
, in the case below named
origin
, to the branch
master
:
git push origin master
Also, a shortcut to add all the unstaged files and make a commit at the same time is:
git commit -a -m 'commit message'
Mercurial (hg)
To commit a change in
Mercurial
Mercurial is a distributed revision control tool for software developers. It is supported on Microsoft Windows and Unix-like systems, such as FreeBSD, macOS, and Linux.
Mercurial's major design goals include high performance and scalability, d ...
on the
command line
A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
, assuming
hg is installed, the following command is used:
hg commit --message 'Commit Message'
This is also assuming that the files within the current directory have been staged as such:
hg add
The above command adds all of the files in the working directory to be staged for the Mercurial commit. After the commit has been applied, the last step is to push the commit to the given
software repository
A software repository, or repo for short, is a storage location for software packages. Often a table of contents is also stored, along with metadata. A software repository is typically managed by source control or repository managers. Package ...
, to the
default
branch:
hg push
See also
*
Commit (data management)
In computer science and data management, a commit is the making of a set of tentative changes permanent, marking the end of a transaction and providing ''Durability'' to ACID transactions. A ''commit'' is an act of committing. The record of com ...
*
References
{{Version control software
Version control systems