annotated tag
A Git object in its own right, created by git tag -a v1.4.0 -m "Proxy timeout raised to 120s": it names one specific commit and carries an author, a date and a message. Two habits carried over from branches mislead people here. A branch advances every time you commit; a tag never moves, which is what makes v1.4.0 name the same content in two years, on any clone. And git push does not carry it — it publishes branches. The release exists on your machine, nobody else sees it, and the deploying server's git clone --branch v1.4.0 git@server.example.com:infra/app.git fails on a ref that was never published. git push origin v1.4.0 is the missing command. Drop the -a and Git writes a plain anonymous reference instead: no author, no date, no reason, so "who published this release, and when?" has no answer anywhere.
Also written: tag, git tag -a
