bump

Semantic versioning for Git, simplified.

A lightweight CLI tool that automates version increments following SemVer standards. Manage your project versions with confidence.

$ bump
● on default branch: main
● no uncommitted changes
● no remote changes
● no unpushed changes
● no new remote tags
● bump tag v1.2.3 → v1.2.4
● tag v1.2.4 created
● tag v1.2.4 pushed

Installation

Homebrew

brew tap flaticols/apps
brew install flaticols/apps/bump

Go

go install github.com/flaticols/bump@latest

Usage

Bump follows semantic versioning principles, allowing you to easily increment major, minor, or patch versions.

bump

Bumps patch version

1.2.3 → 1.2.4

bump major

Bumps major version

1.2.3 → 2.0.0

bump minor

Bumps minor version

1.2.3 → 1.3.0

bump patch

Bumps patch version

1.2.3 → 1.2.4

bump undo

Removes the last version tag

v1.2.4 → v1.2.3

Options

--repo, -r Path to the repository
--verbose, -v Print verbose output
--local, -l Don't error if no remotes found
--brave, -b Skip all confirmation prompts
--no-color Disable colorful output
--version Print version information

Features

Auto-Detection

Automatically detects and increments from the latest git tag

Branch Validation

Validates you're on a default branch (main, master, etc.)

Change Detection

Checks for uncommitted changes and remote synchronization

Automatic Pushing

Creates and pushes git tags using semantic versioning

Version Rollback

Easily remove the most recent version tag when needed

Colorful Output

Visually appealing terminal feedback with status indicators

Tag Sync

Automatically detects and fetches new tags from remote

Brave Mode

Bypass warnings and continue operations for advanced users

Examples

Standard Version Bumping

Increment the patch version number

$ bump
● on default branch: main
● no uncommitted changes
● no remote changes
● no unpushed changes
● no new remote tags
● bump tag v1.2.3 → v1.2.4
● tag v1.2.4 created
● tag v1.2.4 pushed

Major Version for Breaking Changes

Increment the major version for breaking changes

$ bump major
● on default branch: main
● no uncommitted changes
● no remote changes
● no unpushed changes
● no new remote tags
● bump tag v1.2.3 → v2.0.0
● tag v2.0.0 created
● tag v2.0.0 pushed

Using a Different Repository

Specify a different repository path

$ bump --repo=/path/to/repo minor
● working directory: /path/to/repo
● on default branch: main
● no uncommitted changes
● no remote changes
● no unpushed changes
● no new remote tags
● bump tag v1.2.3 → v1.3.0
● tag v1.3.0 created
● tag v1.3.0 pushed

Using Brave Mode

Skip all confirmation prompts with brave mode

$ bump undo --brave
● brave mode enabled
● removing tag v1.2.4
● local tag removed
● remote tag removed

Changelog

Track the development progress of Bump. For a full changelog, visit CHANGELOG.md on GitHub.

v0.0.7 March 29, 2025
Added
  • Implementation of full semver spec v2
Fixed
  • Improvement of latest semver tag detection (thanks to @emicklei)
v0.0.6 March 27, 2025
Added
  • Improved help documentation with examples and better descriptions
  • Version increment arguments (major, minor, patch) now visible in help text
  • Added CHANGELOG.md to track version history
  • Added Changelog section to documentation website
Changed
  • Better command usage descriptions in help text
  • Example commands now more clearly show their purpose
  • Updated undo command documentation with usage examples
v0.0.5 March 20, 2025
Added
  • New HasRemoteUnfetchedTags() function to detect and fetch new tags from remote repositories
  • Automatic tag fetching from remote before performing operations
  • "Brave mode" flag (--brave, -b) to bypass warnings and continue operations
  • Improved error handling with consistent exit behavior
Changed
  • Updated output format to use bullet points (●) instead of symbols (✓, ⚠, ✗)
  • Revised documentation with new output examples
  • Updated README and HTML documentation to reflect the new features and output format
  • Improved messaging for tag operations
Fixed
  • Better handling of repositories without remotes
  • Consistent error messaging
v0.0.4 March 15, 2025
Added
  • Initial public release
  • Basic semantic versioning command-line functionality
  • Support for major, minor, and patch version bumping
  • Tag creation and pushing to remote repositories
  • Undo command for removing the latest tag
  • Validation for repository state before operations