A lightweight tag is just a 'ref' that points at that commit. You can force-create a new annotated tag on top of the old tag:
git tag -a -f <tagname> <tagname>
As of Git v1.8.2, you need to use --force
to replace any tags on a remote with git push
, even if you are replacing a lightweight tag with something that is effectively a fast-forward or a true tag object pointing at the same commit as the existing tag reference.
git push --force origin <tagname>
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…