Releases: gittower/git-flow-next
Release list
v2.0.0
Added
- Shared, committable configuration:
init --sharedwrites the git-flow setup to a.gitflowfile at the repository root and copies it into local config, so a team's branch model can live in the repository instead of every clone --sharedon everyconfig add,edit,rename, anddeleteverb edits the shared.gitflowfile and re-syncs local configconfig synccopies.gitflowinto local config, andconfig statusreports drift between the two (exit code 6 when they differ)- A fresh clone carrying a
.gitflowis offered activation on first run — prompted when interactive, applied automatically withgitflow.shared.autoInit, and topic branch types declared only in the shared file get working commands before activation - Shell tab completion for both the
git-flowandgit flowinvocations, covering bash, zsh, and fish init --initcreates the repository when run outside one, with an interactive prompt offering the same when the flag is absent; the new repository's initial branch is the resolved git-flow trunk rather thaninit.defaultBranch
Changed
- Breaking:
git flow versionnow prints2.0.0 (git-flow-next)instead ofgit-flow-next version 2.0.0, so the first whitespace-separated token is a bare version number as tooling written against git-flow-avh expects. Scripts matching the old string must be updated - Release archives now contain a plain
git-flow/git-flow.exebinary instead of a version- and platform-suffixed filename, so it works as thegit flowsubcommand without renaming after extraction
Fixed
- Boolean git-config values now follow git-config(1) rules:
yes,on, and non-zero integers are truthy and matching is case-insensitive. Previously only the literaltruecounted, so a setting likegit config gitflow.release.finish.push yeswas silently a no-op config editno longer resets boolean settings that were not passed, so editing one field can no longer silently clear an unrelated one such asautoUpdate- Interactive
initnow stores entered branch prefixes verbatim instead of appending a slash, so answeringfeature_producesfeature_loginrather thanfeature_/login - Hooks and filters run from a linked worktree now resolve a relative
gitflow.path.hooksorcore.hooksPathagainst that worktree and execute with it as their working directory, instead of pointing at the main checkout - Commands run outside a git repository now report a git error suggesting
git init(exit code 3) instead of a git-flow-not-initialized error steering togit flow init - Adding a base branch now rolls back its saved configuration when creating the git branch fails, leaving no orphaned config and keeping the command safe to retry
- The
configcommand group is no longer preempted by first-run shared-config activation, including its nestedadd,edit,rename, anddeletesubcommands --sharededits now warn when an untrustedgitflow.path.hooksis withheld from local config, matching whatconfig syncalready reported- Declining the "create a repository?" prompt now reports a decline instead of an internal probe failure
- git-flow-next now builds on every Go target OS; terminal detection previously had no implementation for aix, solaris, illumos, and plan9
Installation
See the installation instructions in the README.
Checksums
SHA-256 checksums for the release artifacts are available in the checksums.txt file.
v1.2.0
Added
git flow integratecommand to merge changes from a parent branch into a topic branch, with options resolved from anintegrateconfig namespacefinishnow pushes the finished branches and release tag to the remote after merging, honoring push optionsupdate --continueandupdate --abortto resume or cancel an update interrupted by conflictsfinishnow detects and auto-clears stale merge state left by a previous interrupted operationdeletenow fetches and runs a remote sync-check before deleting a branch (--fetch,gitflow.<type>.delete.fetch)startcan derive the branch name from a configured version filter- Windows arm64 build target
Changed
finishnow runs a stricter pre-merge sync check: it aborts when the parent (merge-target) branch or the topic branch is behind or has diverged from its remote (with a diverged-specific message), while tolerating either being ahead;--forceskips the checkfinishnow treats a fetch failure against a reachable-but-failing remote as fatal (was a silent note); the error names the cause and suggests--no-fetch/--forcestartnow fetches by default before creating a branch (skipped silently when no remote is configured); disable with--no-fetchorgitflow.<type>.start.fetch false. Shares the unified fetch resolution (default → config → flag) withfinish- Commands now refuse to act on merge state owned by a foreign operation and on structurally-incomplete state, returning exit code 3 instead of proceeding destructively
Fixed
initnow fails fast when the git user identity is missing- Branch names are validated with
git check-ref-format, and dots are now allowed in base branch names - Branch names are resolved case-insensitively while preserving their original case
- Leaf commands now reject unexpected positional arguments
delete,rename, andfinishare gated when git-flow is uninitialized- Base-branch config cleanup is scoped to local config and treats a missing key as a no-op
finish --abortis a no-op when no merge is in progress- Hooks and filters now run on Windows (executed via
sh)
Installation
See the installation instructions in the README.
Checksums
SHA-256 checksums for the release artifacts are available in the checksums.txt file.
v1.1.0
Added
- Push-option support for publish command (
--push-option/-o) - Support for configurable hooks directory via
gitflow.path.hooksandcore.hooksPath
Fixed
- Validate remote exists before any state-changing delete operations
- Validate remote before remote operations (publish, track, finish sync)
- Check if remote exists before attempting to delete remote branch
- Skip fetch when no remote is configured
- Use empty commit instead of README.md when initializing empty repositories
- Default to empty version tag prefix during init
- Thread config correctly into tag creation step during finish
Installation
See the installation instructions in the README.
Checksums
SHA-256 checksums for the release artifacts are available in the checksums.txt file.
v1.0.0
Added
--no-verifyoption for finish command to skip git hooks during merge--merge-messageand--update-messageoptions for finish command with placeholder support- Git config support for merge message options (
gitflow.<type>.finish.mergeMessage,gitflow.<type>.finish.updateMessage) - Configuration scope flags for init command (
--local,--global,--system,--file) --forceoption for init command to allow reconfiguration- Remote sync check before finish to ensure local branch is up-to-date with remote
Changed
- Default fetch behavior changed to
truefor finish command
Fixed
- Hooks now receive correct positional arguments
Installation
See the installation instructions in the README.
Checksums
SHA-256 checksums for the release artifacts are available in the checksums.txt file.
v0.3.0
Added
- Add hooks and filters system for customizing git-flow operations
- Pre/post hooks for start, finish, publish, track, delete, and update actions
- Version filters for topic branches on start
- Tag message filters for topic branches that create tags on finish
- Add
publishcommand for topic branches to push branches to remote - Add
--squash-messageoption for custom squash commit messages on finish - Add config support for force deletion (
gitflow.branch.<type>.forceDelete)
Fixed
- Fix worktree support for hooks, filters, and merge state
- Fix shorthand
git flow publishcommand (was returning "not implemented") - Fix
git flow <type> finishto allow optional branch name (uses current branch)
Installation
See the installation instructions in the README.
Checksums
SHA-256 checksums for the release artifacts are available in the checksums.txt file.
v0.2.0
Added
- Add
trackcommand for topic branches to track existing remote branches - Add
--fetchoption for topic branch finish command
Fixed
- Create base branches in dependency order during init
- Fix docs link in README.md
Changed
- Optimize binary size (~50% reduction)
Installation
See the installation instructions in the README.
Checksums
SHA-256 checksums for the release artifacts are available in the checksums.txt file.
v0.1.1
Installation
See the installation instructions in the README.
Checksums
SHA-256 checksums for the release artifacts are available in the checksums.txt file.
Full Changelog: v0.1.0...v0.1.1
v0.1.0
Installation
See the installation instructions in the README.
Checksums
SHA-256 checksums for the release artifacts are available in the checksums.txt file.
Full Changelog: v0.1.0-rc.2...v0.1.0
v0.1.0-rc.2
Installation
See the installation instructions in the README.
Checksums
SHA-256 checksums for the release artifacts are available in the checksums.txt file.
Full Changelog: v0.1.0-rc.1...v0.1.0-rc.2
v0.1.0-rc.1
Installation
See the installation instructions in the README.
Checksums
SHA-256 checksums for the release artifacts are available in the checksums.txt file.
Full Changelog: v0.1.0-alpha.2...v0.1.0-rc.1