git tag
Tags erstellen, auflisten und löschen
Der Befehl 'git tag' gibt einem Commit einen festen Namen, meist ein Release wie v1.0. Anders als ein Branch bewegt sich ein Tag nie. Ein leichtgewichtiger Tag ist nur ein Name; ein annotierter Tag (-a) ist ein vollständiges Objekt mit Ersteller, Datum und Nachricht und die empfohlene Art für Releases. Tags werden nicht automatisch gepusht: pushe sie mit git push origin <tag>.
Syntax
git tag [-a | -s] [-f] [-m <msg>] <tagname> [<commit>]
git tag -d <tagname>...
git tag [-n[<num>]] -l [<pattern>...]Optionen
Die richtige Option wählen
Leichtgewichtig oder annotiert
Zwei Arten von Tags
| Befehl | Speichert | Einsatz |
|---|---|---|
git tag v1.0 | Nur der Name | Private Lesezeichen |
git tag -a v1.0 -m "..." | Ersteller, Datum, Nachricht | Releases |
Tag oder Branch
Beide benennen einen Commit
| Befehl | Wandert mit jedem Commit? | Von git push übertragen? |
|---|---|---|
Branch | Ja | Ja (der aktuelle Branch) |
Tag | Nie | Nein, ausdrücklich pushen |
Beispiele
Den aktuellen Commit taggen
git tag v1.0Ein leichtgewichtiger Tag namens v1.0.
Annotierter Tag
git tag -a v1.0 -m "First release"Ein Tag mit Ersteller, Datum und Nachricht.
Einen Tag pushen
git push origin v1.0Den Tag auf dem Remote teilen.
Tags auflisten
git tag -l "v1.*"Tags auflisten, die zu einem Muster passen.
Workflow-Beispiele
git switch main && git pullAuf dem neuesten main sein
git tag -a v1.0 -m "First release"Den Release-Tag erstellen
git push origin v1.0Teilen
Fehlerbehebung
fatal: tag 'v1.0' already exists
Ursache: Der Name ist vergeben
Wähle einen anderen Namen oder lösche ihn zuerst (git tag -d v1.0)
Mein Tag ist nicht auf GitHub
Ursache: git push sendet keine Tags
git push origin v1.0, oder git push --tags
Ein gelöschter Tag kommt nach einem Fetch zurück
Ursache: Er existiert noch auf dem Remote
Lösche ihn auch dort: git push origin --delete v1.0
Tipps & Stolperfallen
Best Practices
- ✓Verwende annotierte Tags für Releases.
- ✓Folge der semantischen Versionierung (v1.2.3).
- ✓Verschiebe oder verwende einen Tag nie erneut, wenn er veröffentlicht ist.
Häufige Fehler
- ✗Erwarten, dass git push Tags mitschickt — pushe sie ausdrücklich oder nutze --follow-tags.
- ✗Leichtgewichtige Tags für Releases nutzen: sie speichern weder Autor noch Datum noch Nachricht.
- ✗Einen Tag verschieben, den andere schon geholt haben.
FAQ
git switch --detach v1.0, oder erstelle davon einen Branch: git switch -c hotfix v1.0.
git push --tags (oder git push --follow-tags für annotierte Tags auf gepushten Commits).
Es benennt einen Commit nach dem nächstgelegenen Tag, z. B. v1.0-3-g1a2b3c4.