Version-control commit (source code)

= Version-control commit

A <version-control commit> records an identifiable revision together with history metadata. In <Git (version control)>, a <version-control commit>[commit] names a tree <version-control snapshot>[snapshot] and parent <version-control commits>[commits], alongside author/committer information and a message. An initial <version-control commit>[commit] has no parent; an ordinary <version-control commit>[commit] has one, while a merge can have several.<git-commit in the Git documentation>[Description and Commit information]{ref}

The parent links form a <commit graph>, allowing a tool to compare revisions and traverse ancestry. Rewriting a <version-control commit>[commit]'s recorded content or metadata creates a different <version-control commit>[commit] object rather than silently modifying the old one. A <version-control commit>[commit] identifies the recorded source <version-control snapshot>[snapshot]; reproducing a calculation also requires external data, selected <software dependencies>[dependencies] and execution settings that were not necessarily stored in that <version-control snapshot>[snapshot].