Release tag
A fixed version-control marker, usually v1.2.3, that identifies the exact commit whose code belongs to a release.
What it is
A release tag is a version-control marker, usually named v1.2.3, that points to the exact commit included in a release. Unlike a branch, it is meant to stay fixed. An annotated Git tag also records a tagger, date, message, and optional signature. A GitHub Release adds notes and files around a tag, but the tag remains the identity of the source.
Create one for every release that may need to be reproduced, audited, or rolled back. It answers 'what code was this?' without relying on a branch name or a deployer's memory, and it gives build systems a stable event for publishing packages and images.
Gotcha: a tag identifies source, not the built artifact or the running deployment. Record the artifact digest and environment beside it. Never move a published tag to a different commit; issue a new patch version instead, or caches and downstream builds can disagree about what that version means.
Ask AI for it
Create a release tag for the exact commit approved for production. Verify its commit SHA and passing GitHub Actions checks, then create an annotated tag with git tag -a vX.Y.Z <sha> -m "Release vX.Y.Z" and push that tag without force. Use gh release create to attach generated release notes, artifact SHA-256 checksums, and links to the deployment record. Store the tag, commit SHA, artifact digest, and production URL together, and require a new patch version instead of moving a published tag.