Was sind Git-Tags??
Git-Tags sind Zeiger auf bestimmte Commits. Sie sind wie Lesezeichen. Sie können jede Art von Konvention verwenden, die Sie Tags erstellen möchten. Aber die meisten Entwicklungsteams verwenden Versionsnummern wie v1.0.1 oder v.1.1-a1, um Tags zu erstellen.
Tags erstellen
Es gibt zwei Arten von Tags in Git:
- Leichte Tags
- Annotierte Tags
Leichte Tags
Die leichten Tags sind einfach zu erstellen. Sie können einfach die folgende Befehlszeile verwenden:
$git-TagDiese Tags werden in der .git-Ordner Ihres Arbeits-Repositorys.
Lassen Sie uns ein paar leichte Git-Tags erstellen:
$git-Tag v1.0.1$git-Tag Release-20190401
Im ersten Fall haben wir ein Tag mit „v1“ erstellt.0.1”. Im zweiten Fall haben wir ein Tag mit „Release-20190401“ erstellt. Die Lightweight-Tags geben keinen Wert zurück. Außerdem ist es wichtig, darauf hinzuweisen, dass diese beiden Tags, da sie nacheinander erstellt wurden, auf denselben Commit verweisen.
Annotierte Tags
Annotierte Tags ermöglichen das Speichern weiterer Informationen. Sie können die Option „-a“ verwenden, um diese Tags zu erstellen:
$git-Tag -aVersuchen wir, ein mit Anmerkungen versehenes Tag zu erstellen:
git tag -a v1.0.2Es öffnet sich ein Textfenster, in das Sie einen Kommentar eingeben können, der so aussehen sollte:
## Schreiben Sie eine Nachricht für das Tag:
# v1.0.2
# Zeilen, die mit '#' beginnen, werden ignoriert.
Geben Sie einen Kommentar ein und speichern Sie ihn. Also, jetzt dein Tag v1.0.2 wird mit einem Kommentar gespeichert. Alternativ können Sie den Kommentar auch direkt wie folgt in die Befehlszeile eingeben:
git tag -a v1.0.3 -m "Meine Version 1.0.3"Suchen von Tags in Ihrem Code
Nachdem wir nun einige Tags erstellt haben, sehen wir uns an, was wir haben:
$git-Tag -lAusgabe-20190401
v1.0.1
v1.0.2
v1.0.3
Wir können sehen, dass alle unsere Tags in alphabetischer Reihenfolge angezeigt werden. Weitere Informationen zu den Tags erhalten Sie mit dem „-n
Release-20190401 Aktualisierte README.md
v1.0.1 Aktualisierte README.md
v1.0.2 Meine Version 1.0.2
v1.0.3 Meine Version 1.0.3
Hier können Sie einen Unterschied zwischen leichten und annotierten Tags feststellen. In diesem Beispiel „Release-20190401“ und „v1“.0.1" sind leichte Tags. Die „v1“.0.2“ und „v1“.0.3" sind kommentierte Tags. Alle verweisen auf denselben Commit (Commit 34671):
$git logCommit 106e0bb02a58ec3e818e9acdf3bb19a9247a0e84 (HEAD -> Master, Tag: v1.0.4)
Autor: Zak H
Datum: Sa. 6. April 21:06:02 2019 -0700
Funktion 2 hinzugefügt
begehen 161c6e564e79624623ed767397a98105426d0ec4
Autor: Zak H
Datum: Sa. 6. April 21:05:25 2019 -0700
Funktion 1 hinzugefügt
Commit 34671d824f9b9951e57f867998cb3c02a11c4805 (Tag: v1.0.3, Tag: v1.0.2,
Tag: v1.0.1, Tag: Release-20190401)
Autor: Zak H
Datum: Sa. 6. April 20:24:53 2019 -0700
Aktualisierte README.md
Commit afe9b0c7c9fbce3c3d585afe67358a5eec226e2c (Herkunft/Master)
Autor: Zak H
Datum: Sa. 6. April 20:23:55 2019 -0700
Drin
Die Lightweight-Tags zeigen jedoch die Kommentare aus dem Commit selbst, der "Updated README" ist.md“, während die mit Anmerkungen versehenen Tags die einzelnen Kommentare anzeigen, die ihnen während des Tag-Erstellungsprozesses hinzugefügt wurden.
Trinkgeld: Wenn Sie die Commit-Nummer eines bestimmten Tags herausfinden möchten, können Sie den Befehl „git show“ verwenden:
$git show v1.0.3Tag v1.0.3
Stichwort: Zak H
Datum: Sa 6. April 20:43:30 2019 -0700
Meine Version 1.0.3
Commit 34671d824f9b9951e57f867998cb3c02a11c4805 (Tag: v1.0.3, Tag: v1.0.2, Stichwort:
v1.0.1, Tag: Release-20190401)
Autor: Zak H
Datum: Sa. 6. April 20:24:53 2019 -0700
Aktualisierte README.md
diff --git a/README.md b/README.md
index 9daeafb… 180cf83 100644
--- a/README.md
+++ b/README.md
@@ -1 +1 @@
-Prüfung
+test2
Ältere Commits markieren
Du kannst auch zurückgehen und einen älteren Commit markieren. Schauen wir uns die Protokolle an:
$git log --oneline106e0bb (HEAD -> Master, Tag: v1.0.4) Funktion 2 hinzugefügt
161c6e5 Funktion 1 hinzugefügt
34671d8 (tag: v1.0.3, Tag: v1.0.2, Tag: v1.0.1, Tag: Release-20190401) Aktualisierte README.md
afe9b0c (Ursprung/Master) Init
$
Wir bemerken, dass der Commit 161c6e5 kein zugehöriges Tag hat. Wir können diesen Commit wie folgt markieren:
$git tag -a Release-20190402 161c6e5Es öffnet sich das Kommentarfenster. Nachdem wir den Kommentar eingegeben haben, sehen wir, dass der Commit jetzt markiert ist:
$git-Tag -n1Release-20190401 Aktualisierte README.md
Release-20190402 Tag zu einem älteren Commit hinzugefügt
v1.0.1 Aktualisierte README.md
v1.0.2 Meine Version 1.0.2
v1.0.3 Meine Version 1.0.3
v1.0.4 Funktion 2 hinzugefügt
Tags entfernen
Angenommen, Sie möchten die „Release-“-Tags nicht, da sie verwirrend sind. Sie finden zunächst alle „Release-“-Tags:
$git tag -l Freigabe*Ausgabe-20190401
Ausgabe-20190402
Jetzt können Sie sie mit der Option „-d“ entfernen:
$git tag -d Release-20190401Tag 'Release-20190401' gelöscht (vorher 34671d8)
$git tag -d Release-20190402
Tag "Release-20190402" gelöscht (vorher 6ee37bc)
Wenn wir die Tags erneut überprüfen, sollten wir nur die Tags sehen, die mit „v“ beginnen:
$git-Tag -n1v1.0.1 Aktualisierte README.md
v1.0.2 Meine Version 1.0.2
v1.0.3 Meine Version 1.0.3
v1.0.4 Funktion 2 hinzugefügt
Überschreiben von Tags
Angenommen, wir haben eine Situation, in der „v1“.0.4-Zoll-Tag ist für Feature 2:
$git log --onelined7b18a4 (HEAD -> master) Feature 3 hinzugefügt
106e0bb (tag: v1.0.4) Funktion 2 hinzugefügt
161c6e5 Funktion 1 hinzugefügt
34671d8 (tag: v1.0.3, Tag: v1.0.2, Tag: v1.0.1) Aktualisierte README.md
afe9b0c (Ursprung/Master) Init
Aber wir wollen das Tag "v1".0.4", um auf Feature 3 zu zeigen. Wenn wir versuchen, es neu zu taggen, erhalten wir diesen Fehler:
$git-Tag v1.0.4 d7b18a4fatal: tag 'v1.0.4' existiert bereits
Wir können dieses Problem mit der Option „-f“ lösen:
$git tag -f v1.0.4 d7b18a4Aktualisiertes Tag 'v1.0.4' (war 106e0bb)
Wenn wir das Protokoll erneut überprüfen, sehen wir, dass das Tag in den gewünschten Commit verschoben wurde:
$git log --onelined7b18a4 (HEAD -> Master, Tag: v1.0.4) Funktion 3 hinzugefügt
106e0bb Funktion 2 hinzugefügt
161c6e5 Funktion 1 hinzugefügt
34671d8 (tag: v1.0.3, Tag: v1.0.2, Tag: v1.0.1) Aktualisierte README.md
afe9b0c (Ursprung/Master) Init
Alternativ können Sie auch ein Tag löschen und einem neuen Commit erneut hinzufügen.
Tags mit anderen Benutzern teilen
Wenn Sie Ihren Code in Ihr Remote-Repository übertragen, werden Git-Tags nicht automatisch übertragen. Wenn Sie Ihre Tags mit anderen Benutzern teilen möchten, müssen Sie diese ausschließlich pushen.
Die Tags können wie folgt gepusht werden:
$git push origin v1.0.4Objekte zählen: 12, fertig.
Delta-Komprimierung mit bis zu 4 Threads.
Komprimieren von Objekten: 100% (4/4), fertig.
Schreibobjekte: 100% (12/12), 902 Byte | 150.00 KiB/s, fertig.
Gesamt 12 (Delta 0), wiederverwendet 0 (Delta 0)
An /Users/zakh/_work/LearnGIT/git_tagging/remote/project_mayhem
* [neues Tag] v1.0.4 -> v1.0.4
Wenn jetzt andere Benutzer das Remote-Repository klonen, sehen sie nur das Tag, das gepusht wurde („v1.0.4" in diesem Fall).
Verwendung von Branches vs. Tags
Verzweigungen sind nützlich für neue Funktionen oder Experimente. Im Allgemeinen möchten Sie verzweigen, wenn zukünftige Arbeiten zu erledigen sind und die Arbeit Ihre aktuelle Entwicklung stört. Auf der anderen Seite sind Tags als Snapshots nützlicher. Sie sollten sie verwenden, um sich an bestimmte Dinge zu erinnern, die Sie bereits getan haben.
Abschließend
Git-Tag ist eine zu wenig genutzte Funktion, die eine großartige Möglichkeit bietet, den Überblick über Veröffentlichungen und Sonderfunktionen zu behalten. Wenn Sie bewährte Verfahren rund um Tags einrichten, können Sie problemlos mit Ihrem Entwicklungsteam kommunizieren und Ihre Entwicklungsprozesse vereinfachen.
Weitere Studie:
- https://git-scm.com/book/de/v2/Git-Basics-Tagging
- https://softwareengineering.Stapelaustausch.com/questions/165725/git-branching-and-tagging-best-practices
- https://www.Atlassianer.com/git/tutorials/inspecting-a-repository/git-tag
- https://de.Wikipedia.org/wiki/Software_versioning
- https://www.techopädie.com/definition/25977/software-versioning