Skip to content

Reference: git flow release

Konstantin edited this page Dec 15, 2025 · 14 revisions

Reference - git flow release

git flow release - List existing release branches

Description

List existing release branches

Synopsis

git flow release [list] [-h] [-v]

Options

-h,--[no]help
show this help

-v,--[no]verbose
verbose (more) output


git flow release start - Start a new release branch

Description

Start a new release branch

Synopsis

git flow release start [-h] [-F] <version>

Options

-h,--[no]help
show this help

--showcommands
Show git commands while executing them

-F,--[no]fetch
fetch from origin before performing finish


git flow release finish - Finish a release branch

Description

Finish a release branch

Synopsis

git flow release finish [-h] [-F] [-s] [-u] [-m | -f] [-p] [-k] [-n] [-b] [-S] [-9] <version>

Options

-h,--[no]help
show this help

--showcommands
Show git commands while executing them

-F,--[no]fetch
fetch from origin before performing finish

-s,--[no]sign
sign the release tag cryptographically

-u,--signingkey
use the given GPG-key for the digital signature (implies -s)

-m,--message
use the given tag message

NOTE: to enter a multi-line tag message the format needs to be "$(printf 'message text with \n as needed for formating')"

-f,--messagefile
use the contents of the given file as a tag message

-p,--[no]push
push the production and develop branch to origin after performing the finish.

--[no]pushproduction push the production branch to origin after performing the finish.

--[no]pushdevelop push the develop branch to origin after performing the finish.

-k,--[no]keep
keep branch after performing finish

--[no]keepremote
keep the remote branch

--[no]keeplocal
keep the local branch

-n,--[no]notag
don't tag this release

-T,--tagname
Use given tag name

-b,--[no]nobackmerge
don't back-merge master, or tag if applicable, in develop

-S,--[no]squash
squash release during merge

--ff-master
Fast forward master branch if possible

-9,--[no]create-release
Create a GitHub/GitLab release after finishing (LBEM Edition)

GitHub/GitLab Releases (LBEM Edition)

When --create-release is specified, the command will:

  1. Complete the standard release finish (merge, tag, etc.)
  2. Push the tag to origin (required for release creation)
  3. Create a GitHub/GitLab release using the CLI tool:
    • GitHub: uses gh release create
    • GitLab: uses glab release create

The release notes are auto-generated from commits since the last tag.

Configuration

  • gitflow.release.finish.create-release - Set to true to create releases by default

git flow release create - creates a release

Description

Start and Finish a release branch

Synopsis

git flow release create [-h] [-F] [-s] [-u] [-m | -f] [-p] [-k] [-n] [-b] [-S] <version> [<branch>]

Options

-h,--[no]help
show this help

--showcommands
Show git commands while executing them

-F,--[no]fetch
fetch from origin before performing finish

-s,--[no]sign
sign the release tag cryptographically

-u,--signingkey
use the given GPG-key for the digital signature (implies -s)

-m,--message
use the given tag message

NOTE: to enter a multi-line tag message the format needs to be "$(printf 'message text with \n as needed for formating')"

-f,--messagefile
use the contents of the given file as a tag message

-p,--[no]push
push the production and develop branch to origin after performing the finish.

--[no]pushproduction push the production branch to origin after performing the finish.

--[no]pushdevelop push the develop branch to origin after performing the finish.

-k,--[no]keep
keep branch after performing finish

--[no]keepremote
keep the remote branch

--[no]keeplocal
keep the local branch

-n,--[no]notag
don't tag this release

-T,--tagname
Use given tag name

-b,--[no]nobackmerge
don't back-merge master, or tag if applicable, in develop

-S,--[no]squash
squash release during merge

--ff-master
Fast forward master branch if possible


git flow release branch - Finish any given branch

Description

Release a branch [<name>], if a name is not given it defaults to the develop branch, and use the given version <version>

Synopsis

git flow release branch [-h] [-F] [-s] [-u] [-m] [-f] [-p] [-n] [-S] <version> [<name>]

Options

-h,--[no]help
show this help

--showcommands
Show git commands while executing them

-F,--[no]fetch
fetch from origin before performing finish

-s,--[no]sign
sign the release tag cryptographically

-u,--signingkey
use the given GPG-key for the digital signature (implies -s)

-m,--message
use the given tag message

-f,--messagefile
use the contents of the given file as a tag message

-p,--[no]push
push to origin after performing finish

-n,--[no]notag
don't tag this release

-S,--[no]squash
squash release during merge


git flow release publish - Publish a release branch

Description

Publish the release branch <name> on $ORIGIN

Synopsis

git flow release publish [-h] <name>

Options

-h,--[no]help
show this help

--showcommands Show git commands while executing them


git flow release track - Track a release branch

Description

Start tracking release <name> that is shared on $ORIGIN

Synopsis

git flow release track [-h] <name>

Options

-h,--[no]help
show this help

--showcommands
Show git commands while executing them


git flow release delete - Delete a release branch

Description

Deletes a given release branch

Synopsis

git flow release delete [-h] [-f] [-r] <name>

Options

-h,--[no]help
show this help

--showcommands
Show git commands while executing them

-f,--[no]force
force deletion

-r,--[no]remote
delete remote branch


git flow release rebase - Perform a rebase

Description

Rebase <name> on <base_branch>

Synopsis

git flow release rebase [-h] [-i] [-p] [<name|nameprefix>]

Options

-h,--[no]help
show this help

--showcommands
Show git commands while executing them

-i,--[no]interactive
do an interactive rebase

-p, --[no]preserve-merges
preserve merges


git flow release sync - Sync release branch (LBEM Edition)

Description

Synchronize release branch <name> with the production branch. This command fetches updates from origin and updates the release branch with any changes from the production branch.

Synopsis

git flow release sync [-h] [<name|nameprefix>]

Options

-h,--[no]help
show this help

--showcommands
Show git commands while executing them

Behavior

  1. Stashes any uncommitted changes
  2. Fetches updates from origin
  3. Updates the production branch (e.g., main/master) with remote changes
  4. Merges production branch into release branch (if there are changes)
  5. Restores stashed changes

This is useful when hotfixes have been applied to production that need to be incorporated into an in-progress release.

Clone this wiki locally