glossaryGit workflow glossary
Plain-language explanations of conventional commits, atomic commits, pre-commit hooks, and more Git workflow concepts.
- Conventional CommitsA lightweight specification for commit message formatting that encodes change type, scope, and description in a structured, machine-readable way.
- Atomic CommitsA commit that encapsulates exactly one logical change, making it independently understandable, revertable, and reviewable without affecting unrelated parts of the codebase.
- Commit SplittingThe practice of dividing a working-tree change set into multiple discrete commits, each containing one logical unit of work.
- Pre-commit HooksGit hooks that run automatically before a commit is recorded, allowing teams to enforce code quality checks, linting, or message format validation without manual steps.
- Semantic VersioningA versioning scheme using a MAJOR.MINOR.PATCH number format where each component increments according to the nature of the changes: breaking changes, new features, and bug fixes respectively.
- Git HooksShell scripts placed in a repository's .git/hooks directory that Git executes automatically at specific points in the version control workflow.
- Conventional ChangelogAn automatically generated changelog derived from Conventional Commits history, categorising changes into sections like Features, Bug Fixes, and Breaking Changes per release.
- Monorepo CommitsCommit practices adapted for repositories containing multiple packages or services, using scope to indicate which package or service a change belongs to.
- Commit Message FormatThe structural rules that define how a git commit message should be organised, including its subject line, optional body, and optional footer sections.
- Squash CommitsThe git operation of combining multiple commits into a single commit, typically used to clean up work-in-progress history before merging a feature branch.
- Git RebaseA git operation that rewrites commit history by applying commits from one branch onto the tip of another, creating a linear history without merge commits.
- Git Cherry-pickA git command that applies the changes introduced by one or more existing commits from any branch onto the current HEAD, creating a new commit with the same changes but a different hash.
- Git Merge ConflictA situation where git cannot automatically reconcile two divergent changes to the same part of a file, requiring manual resolution by the developer.
- Git StashA git feature that temporarily shelves uncommitted changes (both staged and unstaged) so you can work on something else, then reapply them later.
- Git BisectA git command that uses binary search to find the specific commit that introduced a bug, by repeatedly halving the range of suspect commits.
- Git ReflogA reference log that records every movement of HEAD in the local repository, providing a safety net to recover lost commits and undo history-altering operations.
- Git WorktreeA git feature that allows multiple working directories, each checked out to a different branch, from a single repository, enabling parallel work without stashing or cloning.
- Git FlowA branching model that defines a strict set of branch types (main, develop, feature, release, hotfix) and rules for how and when branches are created, merged, and deleted.
- Trunk-Based DevelopmentA version control branching model where developers integrate small, frequent changes directly into a single shared main branch (trunk), with short-lived feature branches and minimal branching complexity.
- GPG SigningA cryptographic method to sign git commits and tags with a GPG key, verifying the identity of the author and ensuring the commit content has not been tampered with.