Skip to main content

Version Control

Git workflows and versioning best practices

11
Best Practices

Best Practices

Semantic Versioning 2.0.0

Consistent MAJOR.MINOR.PATCH versioning rules for APIs and packages.

by SemVer.Org

Conventional Commits Spec

Machine-readable Git commit messages enabling automated changelogs and semantic releases.

by Conventional Commits Initiative

Trunk-Based Development Guidelines

Branching strategy promoting short-lived branches, frequent commits to trunk, and feature flags.

by Paul Hammant

GitHub Flow

A lightweight, branch-based workflow built around short-lived feature branches, pull requests, and continuous deployment from a single always-deployable main branch.

by GitHub

GitFlow Branching Model

A structured Git branching model using long-lived main and develop branches plus dedicated feature, release, and hotfix branches to coordinate scheduled releases.

by Vincent Driessen

Pipeline as Code

Defining CI/CD pipelines in version-controlled configuration files stored alongside the application, so the delivery process is reviewable, reproducible, and auditable.

by Jenkins (CloudBees)

Pre-Commit Hooks Automation

Automating checks such as formatting, linting, and secret scanning that run on every Git commit, catching issues locally before they ever reach the shared repository.

by pre-commit (Anthony Sottile)

Configuration as Code

Managing application and system configuration in version-controlled, machine-readable files instead of manual settings, making configuration reviewable, auditable, and reproducible.

by ThoughtWorks

InnerSource

InnerSource applies open source development practices inside an organization, letting teams share, contribute to, and reuse internal code through transparent, contribution-friendly repositories.

by InnerSource Commons Foundation

Documentation as Code

Documentation as Code treats docs like software: stored in version control, written in plain text, reviewed in pull requests, and published automatically through continuous integration.

by Write the Docs community

Keep a Changelog

Keep a Changelog is a convention for writing human-readable, chronologically ordered changelogs grouped by change type, so users and maintainers can see what changed in each release.

by Olivier Lacan / Keep a Changelog

Tutorials

How to set up pre-commit hooks for a repository

Use the pre-commit framework to run linters and formatters automatically before each commit across a team.

How to adopt a trunk-based development workflow

Move to short-lived branches and continuous integration into a single trunk, using feature flags to ship safely.