1. hub-release(1)
  2. hub manual
  3. hub-release(1)

Manage GitHub Releases for the current repository.


hub release [--include-drafts] [--exclude-prereleases] [-L LIMIT] [-f FORMAT]
hub release show [-f FORMAT] TAG
hub release create [-dpoc] [-a FILE] [-m MESSAGE|-F FILE] [-t TARGET] TAG
hub release edit [options] TAG
hub release download TAG
hub release delete TAG


With no arguments, shows a list of existing releases.

With --include-drafts, include draft releases in the listing. With --exclude-prereleases, exclude non-stable releases from the listing.


Show GitHub release notes for TAG.

With --show-downloads, include the "Downloads" section.


Create a GitHub release for the specified TAG name. If git tag TAG does not exist, it will be created at TARGET (default: current branch).


Edit the GitHub release for the specified TAG name. Accepts the same options as create command. Publish a draft with --draft=false.

When MESSAGE or FILE are not specified, a text editor will open pre-populated with current release title and body. To re-use existing title and body unchanged, pass -m "".


Download the assets attached to release for the specified TAG.


Delete the release and associated assets for the specified TAG. Note that this does not remove the git tag TAG.


-L, --limit

Display only the first LIMIT releases.

-d, --draft

Create a draft release.

-p, --prerelease

Create a pre-release.

-a, --attach FILE

Attach a file as an asset for this release.

If FILE is in the "filename#text" format, the text after the # character is taken as asset label.

-m, --message MESSAGE

The text up to the first blank line in MESSAGE is treated as the release title, and the rest is used as release description in Markdown format.

If multiple MESSAGE options are given, their values are concatenated as separate paragraphs.

-F, --file FILE

Read the release title and description from FILE.

-e, --edit

Further edit the contents of FILE in a text editor before submitting.

-o, --browse

Open the new release in a web browser.

-c, --copy

Put the URL of the new release to clipboard instead of printing it.

-t, --commitish TARGET

A commit SHA or branch name to attach the release to, only used if TAG does not already exist (default: main branch).

-f, --format FORMAT

Pretty print releases using FORMAT (default: "%T%n"). See the "PRETTY FORMATS" section of git-log(1) for some additional details on how placeholders are used in format. The available placeholders for issues are:

%U: the URL of this release

%uT: tarball URL

%uZ: zipball URL

%uA: asset upload URL

%S: state (i.e. "draft", "pre-release")

%sC: set color to yellow or red, depending on state

%t: release name

%T: release tag

%b: body

%as: the list of assets attached to this release

%cD: created date-only (no time of day)

%cr: created date, relative

%ct: created date, UNIX timestamp

%cI: created date, ISO 8601 format

%pD: published date-only (no time of day)

%pr: published date, relative

%pt: published date, UNIX timestamp

%pI: published date, ISO 8601 format

%n: newline

%%: a literal %


Enable colored output even if stdout is not a terminal. WHEN can be one of "always" (default for --color), "never", or "auto" (default).


The git tag name for this release.

See also

hub(1), git-tag(1)