Bird
Raised Fist0
Gitdevops~10 mins

Deleting tags in Git - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Process Flow - Deleting tags
List tags
Choose tag to delete
Delete local tag
Delete remote tag (optional)
Verify deletion
The flow shows listing tags, choosing one to delete, removing it locally, optionally removing it from remote, and verifying the deletion.
Execution Sample
Git
git tag
  git tag -d v1.0
  git push origin :refs/tags/v1.0
  git tag
This sequence lists tags, deletes a local tag named v1.0, deletes the remote tag v1.0, then lists tags again to confirm.
Process Table
StepCommandActionResult
1git tagList all tagsv0.9 v1.0 v1.1
2git tag -d v1.0Delete local tag v1.0Deleted tag 'v1.0' locally
3git push origin :refs/tags/v1.0Delete remote tag v1.0Remote tag 'v1.0' deleted
4git tagList all tags againv0.9 v1.1
💡 Tag v1.0 deleted locally and remotely; final tag list shows only v0.9 and v1.1
Status Tracker
VariableStartAfter Step 2After Step 4
Local tagsv0.9, v1.0, v1.1v0.9, v1.1v0.9, v1.1
Remote tagsv0.9, v1.0, v1.1v0.9, v1.0, v1.1v0.9, v1.1
Key Moments - 2 Insights
Why does deleting a local tag not remove it from the remote repository?
Deleting a local tag only affects your local copy. The remote repository keeps its own tags until you explicitly delete them with a push command, as shown in step 3.
What does the command 'git push origin :refs/tags/v1.0' do?
This command tells Git to delete the tag named v1.0 from the remote repository by pushing an empty reference, as shown in step 3.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what tags remain locally after step 2?
Av1.0, v1.1
Bv0.9, v1.0, v1.1
Cv0.9, v1.1
Dv1.0 only
💡 Hint
Check the 'Local tags' row in variable_tracker after step 2
At which step is the remote tag v1.0 deleted?
AStep 3
BStep 2
CStep 1
DStep 4
💡 Hint
Look at the 'Action' column in execution_table for remote deletion
If you skip step 3, what will the remote tags list show after step 4?
Av0.9, v1.1
Bv0.9, v1.0, v1.1
Cv1.0 only
DNo tags
💡 Hint
Refer to variable_tracker 'Remote tags' before and after step 3
Concept Snapshot
Deleting tags in Git:
- List tags: git tag
- Delete local tag: git tag -d <tagname>
- Delete remote tag: git push origin :refs/tags/<tagname>
- Verify deletion by listing tags again
- Local and remote tags are managed separately
Full Transcript
This visual execution shows how to delete tags in Git. First, you list all tags with 'git tag'. Then, you delete a local tag using 'git tag -d <tagname>'. To remove the tag from the remote repository, you push an empty reference with 'git push origin :refs/tags/<tagname>'. Finally, you list tags again to confirm the deletion. The local and remote tags are separate; deleting locally does not affect the remote until you push the deletion. This step-by-step trace helps beginners understand the difference and the commands needed to fully delete tags.

Practice

(1/5)
1. What command deletes a tag named v1.0 only from your local Git repository?
easy
A. git tag -d v1.0
B. git delete tag v1.0
C. git remove tag v1.0
D. git push origin --delete v1.0

Solution

  1. Step 1: Understand local tag deletion

    To delete a tag locally, Git uses the command git tag -d <tagname>.
  2. Step 2: Identify the correct command for tag 'v1.0'

    Replacing <tagname> with 'v1.0' gives git tag -d v1.0.
  3. Final Answer:

    git tag -d v1.0 -> Option A
  4. Quick Check:

    Local tag deletion = git tag -d [OK]
Hint: Use 'git tag -d' to delete local tags fast [OK]
Common Mistakes:
  • Using 'git delete tag' which is invalid
  • Trying 'git remove tag' which doesn't exist
  • Confusing local deletion with remote deletion commands
2. Which of the following is the correct syntax to delete a remote tag named release-2?
easy
A. git push origin :release-2
B. git tag -d release-2
C. git remove origin release-2
D. git push --delete origin release-2

Solution

  1. Step 1: Understand remote tag deletion syntax

    To delete a tag from the remote repository, use git push --delete origin <tagname>.
  2. Step 2: Apply to tag 'release-2'

    Replacing <tagname> with 'release-2' gives git push --delete origin release-2.
  3. Final Answer:

    git push --delete origin release-2 -> Option D
  4. Quick Check:

    Remote tag deletion = git push --delete origin [OK]
Hint: Use 'git push --delete origin <tag>' for remote tag removal [OK]
Common Mistakes:
  • Using 'git tag -d' which deletes only local tags
  • Trying 'git remove' which is not a git command
  • Using old syntax like 'git push origin :refs/tags/tagname' without understanding
3. What will be the output after running these commands?
git tag -d test-tag
git push --delete origin test-tag

Assuming test-tag exists locally and remotely.
medium
A. Deletes 'test-tag' locally and remotely successfully
B. Deletes 'test-tag' locally but fails to delete remotely
C. Fails to delete 'test-tag' locally but deletes remotely
D. No deletion happens; commands are incorrect

Solution

  1. Step 1: Delete local tag 'test-tag'

    The command git tag -d test-tag deletes the tag locally if it exists.
  2. Step 2: Delete remote tag 'test-tag'

    The command git push --delete origin test-tag deletes the tag from the remote repository.
  3. Final Answer:

    Deletes 'test-tag' locally and remotely successfully -> Option A
  4. Quick Check:

    Local and remote tag deletion = success [OK]
Hint: Local then remote deletion commands remove tags fully [OK]
Common Mistakes:
  • Assuming local deletion deletes remote tags too
  • Using wrong push syntax for remote deletion
  • Not having permissions to delete remote tags
4. You ran git push --delete origin v2.0 but the remote tag v2.0 still exists. What is the most likely cause?
medium
A. The tag name is case-insensitive and you used wrong case
B. You forgot to delete the local tag first
C. You do not have permission to delete tags on the remote
D. The remote repository does not support tag deletion

Solution

  1. Step 1: Understand remote tag deletion requirements

    Deleting a remote tag requires proper permissions on the remote repository.
  2. Step 2: Analyze why tag still exists remotely

    If the tag still exists after the delete command, lack of permission is a common cause.
  3. Final Answer:

    You do not have permission to delete tags on the remote -> Option C
  4. Quick Check:

    Remote deletion failure often = permission issue [OK]
Hint: Check remote permissions if tag deletion fails [OK]
Common Mistakes:
  • Assuming local tag must be deleted first for remote deletion
  • Ignoring case sensitivity which is usually exact
  • Believing remote always supports tag deletion
5. You want to delete multiple tags named alpha, beta, and gamma both locally and remotely in one go. Which command sequence is correct?
hard
A. git tag -d alpha beta gamma && git push origin alpha beta gamma
B. git tag -d alpha beta gamma && git push --delete origin alpha beta gamma
C. git tag -d alpha beta gamma && git push origin :refs/tags/alpha beta gamma
D. git tag -d alpha beta gamma && git push origin --delete alpha beta gamma

Solution

  1. Step 1: Delete multiple local tags

    The command git tag -d alpha beta gamma deletes all three tags locally in one command.
  2. Step 2: Delete multiple remote tags

    The correct syntax to delete multiple remote tags is git push --delete origin alpha beta gamma.
  3. Final Answer:

    git tag -d alpha beta gamma && git push --delete origin alpha beta gamma -> Option B
  4. Quick Check:

    Multiple tag deletion local + remote = git tag -d + git push --delete origin [OK]
Hint: Use 'git tag -d' then 'git push --delete origin' for multiple tags [OK]
Common Mistakes:
  • Placing '--delete' after 'origin' incorrectly
  • Trying to delete remote tags without '--delete' flag
  • Deleting tags one by one instead of batching