git-release
Automate Git repository releases
TLDR
Create and push a release
Create and push a signed release
Create and push a release with a message
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.