Mark a release point with an annotated tag, push it to trigger CI releases, and list, move or delete tags safely.
Use annotated tags for releases (they store author, date and message). Lightweight tags are just a pointer, fine for private bookmarks.
Tags are not pushed by git push alone. Pushing a tag is what fires on: push: tags workflows in GitHub Actions.
Never move or re-use a published release tag. Images, packages and users may already point at it. Cut a new patch version (v1.4.1) instead.
vMAJOR.MINOR.PATCH: MAJOR = breaking change, MINOR = new feature (compatible), PATCH = bug fix. Pre-releases: v2.0.0-rc.1, v2.0.0-beta.2.
Release flow: merge to main → git tag -a vX.Y.Z -m ... → git push origin vX.Y.Z → the GitHub Actions release workflow builds, pushes the image and creates the GitHub Release. See: Release on git tag (GitHub Actions).