git tag

Branches & Merges

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>...]
[ ] optional| oder<arg> Platzhalter... wiederholbar--flag Option

Optionen

Klicke auf eine Option, um sie aufzuklappen

Einsteiger (3)

Erstellt ein annotiertes Tag-Objekt mit Ersteller, Datum und Nachricht.

EmpfohlenReleases sollten festhalten, wer wann und warum getaggt hat

Beispiel

git tag -a v1.0 -m "First release"

Listet Tags auf, optional nur die, die zu einem Muster passen.

EmpfohlenEine lange Tag-Liste mit einem Muster filtern

Beispiel

git tag -l "v1.*"

Löscht die angegebenen lokalen Tags.

Bei BedarfEinen falschen lokalen Tag korrigieren; keine Tags löschen, die andere nutzen

Beispiel

git tag -d v1.0

Fortgeschritten (1)

Ersetzt einen bestehenden Tag und verschiebt ihn auf einen anderen Commit.

Nicht empfohlenEinen veröffentlichten Tag zu verschieben verwirrt alle, die ihn geholt haben

Beispiel

git tag -f v1.0

Die richtige Option wählen

Leichtgewichtig oder annotiert

Zwei Arten von Tags

BefehlSpeichertEinsatz
git tag v1.0Nur der NamePrivate Lesezeichen
git tag -a v1.0 -m "..."Ersteller, Datum, NachrichtReleases

Tag oder Branch

Beide benennen einen Commit

BefehlWandert mit jedem Commit?Von git push übertragen?
BranchJaJa (der aktuelle Branch)
TagNieNein, ausdrücklich pushen

Beispiele

Den aktuellen Commit taggen

git tag v1.0

Ein 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.0

Den Tag auf dem Remote teilen.


Tags auflisten

git tag -l "v1.*"

Tags auflisten, die zu einem Muster passen.

Workflow-Beispiele

1
git switch main && git pull

Auf dem neuesten main sein

2
git tag -a v1.0 -m "First release"

Den Release-Tag erstellen

3
git push origin v1.0

Teilen

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

A:

git switch --detach v1.0, oder erstelle davon einen Branch: git switch -c hotfix v1.0.

A:

git push --tags (oder git push --follow-tags für annotierte Tags auf gepushten Commits).

A:

Es benennt einen Commit nach dem nächstgelegenen Tag, z. B. v1.0-3-g1a2b3c4.