Zum Inhalt springen

git tag

Beschreibung

Tags sind Verweise auf bestimmte Commits in der Git-Historie. Die Hauptfunktion von Tags besteht darin, einen bestimmten Punkt in der Historie festzuhalten, typischerweise um eine Versionsfreigabe zu markieren. Tags sind unveränderlich; einmal erstellt, verfolgen sie die Commit-Historie nicht weiter.

gittag

Einen Git-Tag erstellen

Um einen Git-Tag zu erstellen, führen Sie den folgenden Befehl aus:

git tag

bash
git tag <name-of-tag>

Ersetzen Sie beim Erstellen eines Tags <name-of-tag> durch einen semantischen Bezeichner für den Zustand des Repositorys. Git unterstützt zwei Arten von Tags: annotierte und leichte Tags. Der Hauptunterschied zwischen ihnen ist die Menge an Metadaten, die sie speichern.

Annotierte Tags

Git speichert annotierte Tags als vollständige Objekte in seiner Datenbank. Sie enthalten zusätzliche Metadaten, wie den Namen, die E-Mail-Adresse und das Datum des Taggers. Wie Commits enthalten annotierte Tags eine Tag-Nachricht. Sie können außerdem mit GPG (GNU Privacy Guard) signiert und verifiziert werden, um die Sicherheit zu erhöhen.

Wenn Sie den folgenden Befehl ausführen, wird ein neuer annotierter Tag mit der ID v1.3 erstellt. Der konfigurierte Standard-Texteditor wird dann geöffnet und fordert Sie auf, eine Tag-Nachricht einzugeben.

git annotated tag

bash
git tag -a v1.3

Leichte Tags

Der folgende Befehl erstellt einen leichten Tag mit der Kennung v1.3-lw. Leichte Tags werden ohne die Optionen -a, -s oder -m erstellt. Sie speichern lediglich einen Verweis auf ein bestimmtes Commit-Objekt im Verzeichnis .git/refs/tags/.

git lightweight tag

bash
git tag v1.3-lw

Tag-Liste

Führen Sie den folgenden Befehl aus, um gespeicherte Tags aufzulisten:

git tag command

bash
git tag

Als Ergebnis sehen Sie eine Ausgabe ähnlich dieser:

git tag output

bash
v0.10.0
v0.10.0-rc1
v0.11.0
v0.11.0-rc1
v0.11.1
v0.11.2
v0.12.0
v0.12.0-rc1
v0.12.1
v0.12.2
v0.13.0
v0.13.0-rc1
v0.13.0-rc2

Sie können die Option -l mit einem Platzhalterausdruck verwenden, um die Tag-Liste zu filtern:

git tag with wildcard

bash
git tag -l *-rc*
v0.10.0-rc1
v0.11.0-rc1
v0.12.0-rc1
v0.13.0-rc1
v0.13.0-rc2
v0.14.0-rc1
v0.9.0-rc1
v15.0.0-rc.1
v15.0.0-rc.2
v15.4.0-rc.3

Alte Commits taggen

Standardmäßig erstellt git tag einen Tag für den Commit, auf den HEAD verweist. Sie können auch einen bestimmten Commit-Verweis angeben, um stattdessen einen älteren Commit zu taggen. Führen Sie den Befehl git log aus, um ältere Commits anzuzeigen. Im folgenden Beispiel wird ein Merge-Commit für den neuen Tag verwendet. Um auf einen bestimmten Commit zu verweisen, geben Sie dessen SHA-Hash an:

git log

bash
git log --pretty=oneline
29389857951b64cf874c3557a0f3547bd83b899a Merging branch 'crossword'
b4a5697498bd301d84096da251c98a07c7723e65 init method for crossword
89f3aaab4479697da7686c15f77a3d64d9165190 little changes in logic
3a4a271eda8725415634dd79daabbc4d9b6008e Merging branch 'how-it-works'

Führen Sie den Befehl git tag aus, um einen neuen annotierten Tag mit der ID v1.2 für den im vorherigen Beispiel ausgewählten Commit zu erstellen:

git tag for old commits

bash
git tag -a v1.2 29389857951b64cf874c3557a0f3547bd83b899a

Alte Tags ersetzen

Der Versuch, einen Tag mit einem bereits vorhandenen Bezeichner zu erstellen, führt zu einem Fehler. Verwenden Sie die Option -f (force), um einen vorhandenen Tag zu aktualisieren; dadurch wird sein vorheriger Inhalt überschrieben.

git tag replacing old tags

bash
git tag -a -f v1.3 29389857951b64cf874c3557a0f3547bd83b899a

Tags an ein Remote-Repository pushen

Um einen Tag an ein Remote-Repository zu pushen, übergeben Sie den Tagnamen an den Befehl git push. Dadurch wird sichergestellt, dass andere Benutzer, die das Repository klonen, den neuen Tag erhalten.

git tag, pushing to remote

bash
git push origin v1.3
Counting objects: 9, done.
Delta compression using up to 5 threads.
Compressing objects: 100% (8/8), done.
Writing objects: 100% (12/12), 2.05 KiB | 0 bytes/s, done.
Total 12 (delta 3), reused 0 (delta 0)
To [email protected]:gr8/gittagdocs.git
* [new tag] v1.3 -> v1.3

Tags überprüfen

Sie können den Befehl git checkout verwenden, um einen getaggten Commit zu inspizieren. Dadurch wird das Repository in einen Detached-HEAD-Zustand versetzt. Alle neuen Commits, die hier erstellt werden, gehören nicht zu einem Branch und sind nur über ihren SHA-Hash zugänglich.

git tag, checking over tags

bash
git checkout v1.3

Tags löschen

Sie können einen Tag löschen, indem Sie die Option -d und den Tag-Bezeichner an git tag übergeben. Siehe das folgende Beispiel:

git tag, deleting tags

bash
git tag
v1
v2
v3
git tag -d v1
git tag
v2
v3

Practice

Was sind die Funktionen und Optionen des Befehls 'git tag' in Git?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.