Suggest an editImprove this articleRefine the answer for “Why are tags considered immutable?”. Your changes go to moderation before they’re published.Approval requiredContentWhat you’re changing🇺🇸EN🇺🇦UAPreviewTitle (EN)Short answer (EN)**Tags in Git** are considered immutable because they must always point to the same state of the code and serve as a reliable fixed point for a version or release. **Key point:** technically a tag can be recreated on another commit, but this is considered bad practice because it breaks reproducibility and automation.Shown above the full answer for quick recall.Answer (EN)ImageTags in Git **are considered immutable** because they **must always point to the same state of the code** and serve as a **reliable fixed point for a version or a release**. In simpler terms: *a tag is a "fixed version", not a working pointer.* --- ## What "immutable" means in practice When people say a tag is immutable, they mean: - a tag **should not "move"** to another commit - the tag's value **does not change over time** - `v1.2.0` always points to **the same commit** This rule is a **convention**, not a strict technical restriction. --- ## Technically: can a tag be changed? Yes, **technically it can**: - delete the tag - recreate it with the same name but on a different commit But this: breaks history confuses CI/CD makes releases untrustworthy That is why it is considered **bad practice**. --- ## Why this matters for versions and releases ### 1. Reliability of versions If a tag changes: - the `v1.0.0` version today and tomorrow may mean **different code** - it becomes impossible to reproduce a bug or a build --- ### 2. Stability of CI/CD Very often: - deployment to production is triggered **by a tag** - the tag equals the version If the tag moved: - you could deploy **different code under the same version number** --- ### 3. Audit and rollbacks - a tag makes it easy to find **what was shipped** - you can go back to an older version - history stays honest --- ### 4. Difference from branches - a branch is a "live pointer" - a tag is a **historical marker** Changing historical markers is a bad idea. --- ## Phrasing for an interview > **Tags are considered immutable because they fix a specific version or release and must always point to the same state of the code. Changing a tag breaks reproducibility and automation.**For the reviewerNote to the moderator (optional)Visible only to the moderator. Helps review go faster.