dev@local: ~/project — git
dev@local~/project$v1.0
fatal: tag already exists
Diagnostics Translation
You attempted to create a Git tag using a name that is already taken.
waiting for resolution...
LowVersion Control System

Reviewed for reference consistency: April 11, 2026

Code is Safe

SECURE

Git has paused the operation to protect your code. No data has been lost or corrupted.

What To Know

This state means the release-style name you chose already points somewhere in repository history, and Git is preserving that existing reference identity.

Where Did It Fail?

Working Tree
Your local files
add
Staging Index
Prepared changes
commit
Local Repo
Commit history
push/fetch
Remote Server
GitHub/GitLab
The error involves the internal Git database or commit history structure.

Commands That Trigger This

$v1.0
Re-tagging a release commit because you realized you missed a bug fix in
$Running a CI/CD pipeline that tries to generate the same release tag twice
Running a CI/CD pipeline that tries to generate the same release tag twice

Technical Background

01

Git enforces immutability by default to prevent supply-chain confusion (so `v1.0` always means the same code for everyone).

02

Moving an existing tag changes the meaning of a release-style reference, which is why Git treats the original tag name as something that should stay stable once shared.

Underlying Causes

Running `git tag v1.0.0` twice
Pulling tags from a remote that conflict with a tag you created locally
Trying to move an existing tag to a new commit without forcing it

Frequently Asked Questions

Anyone who already downloaded the old tag will not get the new one automatically. It creates a split history state for your users.

Related Git States