LinuxCommandLibrary

git-release

Automate Git repository releases

TLDR

Create and push a release

$ git release [tag_name]
copy

Create and push a signed release
$ git release [tag_name] -s
copy

Create and push a release with a message
$ git release [tag_name] -m "[message]"
copy

SYNOPSIS

git release [<tagname>] [<commit>]

PARAMETERS

tagname
    Optional. The name for the new release tag (e.g., "v1.0.0"). If omitted, the command will prompt the user to enter a tag name interactively.

commit
    Optional. The specific commit hash or reference to be tagged. If omitted, the current HEAD commit will be tagged.

DESCRIPTION

git-release is an external Git command provided by the git-extras suite of utilities. It simplifies the process of creating and pushing a new release tag in a Git repository.

When invoked, it creates an annotated tag, which is generally preferred for releases as it includes metadata like the tagger's name, email, and date, along with a message. If a tag name is not provided on the command line, it will prompt the user for one. It can tag the current HEAD commit or a specific commit provided as an argument.

After creating the tag locally, it automatically pushes this new tag to the origin remote, making the release visible to collaborators. This command streamlines a common workflow of marking a specific point in history as a release, reducing manual steps involving `git tag` and `git push --tags`.

CAVEATS

This command is not part of the core Git distribution and requires the git-extras package to be installed.

It provides a basic release tagging mechanism and does not include advanced features found in more comprehensive release management tools, such as changelog generation, automatic version incrementing, or integration with CI/CD pipelines. It primarily automates the `git tag -a` and `git push --tags origin` steps.

HISTORY

The git-release command is a component of the git-extras project, an open-source collection of useful Git utilities. git-extras aims to enhance the default Git command-line experience by providing a variety of supplementary commands that automate common or repetitive tasks, extending Git's native capabilities. git-release was developed as part of this collection to simplify the frequent task of marking software releases with annotated tags.

SEE ALSO

Copied to clipboard