Erklärtes Git-Tag: Auflisten, Erstellen, Entfernen und Anzeigen von Tags in Git

Mit Tagging können Entwickler wichtige Kontrollpunkte im Verlauf der Projektentwicklung markieren. Beispielsweise können Softwareversionsversionen mit Tags versehen werden. (Beispiel: v1.3.2) Sie können einem Commit im Wesentlichen einen speziellen Namen (Tag) geben.

So zeigen Sie alle erstellten Tags in alphabetischer Reihenfolge an:

git tag

So erhalten Sie weitere Informationen zu einem Tag:

git show v1.4

Es gibt zwei Arten von Tags:

Kommentiert

git tag -a v1.2 -m "my version 1.4"

Leicht

git tag v1.2

Sie unterscheiden sich in der Art und Weise, wie sie gespeichert werden.

Diese erstellen Tags für Ihr aktuelles Commit.

Falls Sie ein vorheriges Commit markieren möchten, geben Sie die Commit-ID an, die Sie markieren möchten:

git tag -a v1.2 9fceb02

Die Tag-Namen können anstelle von Commit-IDs verwendet werden, während Commits ausgecheckt und an ein Remote-Repo gesendet werden.

Mehr Informationen:

  • Git-Dokumentation: Dokumentation
  • Git Tagging Kapitel: Buch

Sie können alle verfügbaren Tags in einem Projekt mit dem git tagBefehl auflisten (damit sie in alphabetischer Reihenfolge angezeigt werden):

$ git tag v1.0 v2.0 v3.0

Diese Art der Auflistung von Tags eignet sich hervorragend für kleine Projekte. Größere Projekte können jedoch Hunderte von Tags enthalten. Daher müssen Sie diese möglicherweise filtern, wenn Sie nach einem wichtigen Punkt im Verlauf suchen. Sie können Tags finden, die bestimmte Zeichen enthalten -l, die dem git tagBefehl ein hinzufügen :

$ git tag -l "v2.0*" v2.0.1 v2.0.2 v2.0.3 v2.0.4

Erstellen Sie ein Tag

Sie können zwei Arten von Tags erstellen: mit Anmerkungen versehen und leichtgewichtig. Die ersten Objekte sind Konkurrenzobjekte in der GIT-Datenbank: Sie sind Prüfsummen, fordern eine Nachricht an (z. B. Commits) und speichern andere wichtige Daten wie Name, E-Mail-Adresse und Datum. Auf der anderen Seite erfordern Lightweight-Tags keine Nachricht oder speichern andere Daten, die nur als Zeiger auf einen bestimmten Punkt im Projekt dienen.

Erstellen Sie ein mit Anmerkungen versehenes Tag

Fügen Sie -a tagname -m "tag message"dem git tagBefehl Folgendes hinzu , um ein mit Anmerkungen versehenes Tag zu erstellen :

$ git tag -a v4.0 -m "release version 4.0" $ git tag v1.0 v2.0 v3.0 v4.0

Wie Sie sehen können, gibt das -aan, dass Sie ein mit Anmerkungen versehenes Tag erstellen, -mgefolgt vom Tag-Namen und schließlich der Tag-Nachricht, die in der Git-Datenbank gespeichert werden soll.

Erstellen Sie ein leichtes Tag

Lightweight-Tags enthalten nur die Commit-Prüfsumme (es werden keine weiteren Informationen gespeichert). Um einen zu erstellen, führen Sie den git tagBefehl einfach ohne andere Optionen aus (die -lw-Zeichen am Ende des Namens werden verwendet, um leichte Tags anzuzeigen, aber Sie können sie nach Belieben markieren):

$ git tag v4.1-lw $ git tag v1.0 v2.0 v3.0 v4.0 v4.1-lw

Dieses Mal haben Sie keine Nachricht oder andere relevante Daten angegeben, sodass das Tag nur die Prüfsumme des referenzierten Commits enthält.

Tag-Daten anzeigen

Sie können den git showBefehl ausführen , um die in einem Tag gespeicherten Daten anzuzeigen. Bei mit Anmerkungen versehenen Tags werden die Tag-Daten und die Festschreibungsdaten angezeigt:

$ git show v4.0 tag v4.0 Tagger: John Cash  Date: Mon Sat 28 15:00:25 2017 -0700 release version 4.0 commit da43a5fss745av88d47839247990022a98419093 Author: John Cash  Date: Fri Feb 20 20:30:05 2015 -0700 finished details

Wenn es sich bei dem angezeigten Tag um ein leichtes Tag handelt, werden nur die angegebenen Commit-Daten angezeigt:

$ git show v1.4-lw commit da43a5f7389adcb9201ab0a289c389ed022a910b Author: John Cash  Date: Fri Feb 20 20:30:05 2015 -0700 finished details

Alte Commits markieren

Sie können vergangene Commits auch mit dem Git-Tag-Commit markieren. Dazu müssen Sie die Prüfsumme des Commits (oder zumindest einen Teil davon) in der Befehlszeile angeben.

Führen Sie zunächst das Git-Protokoll aus, um die Prüfsumme des erforderlichen Commits zu ermitteln:

$ git log --pretty=oneline ac2998acf289102dba00823821bee04276aad9ca added products section d09034bdea0097726fd8383c0393faa0072829a7 refactorization a029ac120245ab012bed1ca771349eb9cca01c0b modified styles da43a5f7389adcb9201ab0a289c389ed022a910b finished details 0adb03ca013901c1e02174924486a08cea9293a2 small fix in search textarea styles

Wenn Sie die erforderliche Prüfsumme haben, fügen Sie sie am Ende der Tag-Erstellungszeile hinzu:

$ git tag -a v3.5 a029ac

Sie werden sehen, dass das Tag korrekt hinzugefügt wurde git tag:

$ git tag v1.0 v2.0 v3.0 v3.5 v4.0 v4.1-lw

Tags pushen

Git pusht standardmäßig keine Tags, wenn Sie den Befehl git push ausführen. Um ein Tag erfolgreich auf einen Server zu übertragen, müssen Sie Folgendes git push originbefehlen:

$ git push origin v4.0 Counting objects: 14, done. Delta compression using up to 8 threads. Compressing objects: 100% (16/16), done. Writing objects: 100% (18/18), 3.15 KiB | 0 bytes/s, done. Total 18 (delta 4), reused 0 (delta 0) To [email protected]:jcash/gitmanual.git * [new tag] v4.0 -> v4.0

You can also use the --tags option to add multiple tags at once with the git push origin command:

$ git push origin --tags Counting objects: 1, done. Writing objects: 100% (1/1), 160 bytes | 0 bytes/s, done. Total 1 (delta 0), reused 0 (delta 0) To [email protected]:jcash/gitmanual.git * [new tag] v4.0 -> v4.0 * [new tag] v4.1-lw -> v4.1-lw

Checking out Tags

You can use git checkout to checkout to a tag like you would normally do. But you need to keep in mind that this would result a detached HEAD state.

$ git checkout v0.0.3 Note: checking out 'v0.0.3'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout.

Deleting a Tag

You may find a situation were you want to delete a certain tag. There’s a very useful command for this situations:

$ git tag --delete v0.0.2 $ git tag v0.0.1 v0.0.3 v0.0.4

More Information

  • Git Pro - Tagging Basics
  • Git Pro - Documentation
  • Git HowTo
  • Git tip: Tags
  • Creating a tag

Sources

Git documentation: tags