Git

So verwenden Sie Git-Tags, um Ihre Entwicklungsprozesse zu verbessern

So verwenden Sie Git-Tags, um Ihre Entwicklungsprozesse zu verbessern
Für die meisten Entwicklungsteams ist Git zu einem unverzichtbaren Werkzeug für die Versionskontrolle geworden. Ein wichtiger Grund für die Popularität von Git ist seine nahtlose Fähigkeit, Branches zu erstellen. Entwicklungsteams können Branches verwenden, um an bestimmten Funktionen oder Releases zu arbeiten. Das Tag von Git ist jedoch ein oft übersehener Befehl, der Teams dabei helfen kann, ihre Arbeitsabläufe zu vereinfachen. In diesem Artikel werden wir uns mit dem Was, Wie und Warum des Git-Taggings befassen.

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

Die leichten Tags sind einfach zu erstellen. Sie können einfach die folgende Befehlszeile verwenden:

$git-Tag

Diese 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 -a

Versuchen wir, ein mit Anmerkungen versehenes Tag zu erstellen:

git tag -a v1.0.2

Es ö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 -l
Ausgabe-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" wo steht für die Zeilenanzahl der Kommentare.

$git-Tag -n1
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 log
Commit 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.3
Tag 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 --oneline
106e0bb (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 161c6e5

Es öffnet sich das Kommentarfenster. Nachdem wir den Kommentar eingegeben haben, sehen wir, dass der Commit jetzt markiert ist:

$git-Tag -n1
Release-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-20190401
Tag '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 -n1
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

Überschreiben von Tags

Angenommen, wir haben eine Situation, in der „v1“.0.4-Zoll-Tag ist für Feature 2:

$git log --oneline
d7b18a4 (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 d7b18a4
fatal: tag 'v1.0.4' existiert bereits

Wir können dieses Problem mit der Option „-f“ lösen:

$git tag -f v1.0.4 d7b18a4
Aktualisiertes 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 --oneline
d7b18a4 (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.4
Objekte 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
Schlacht um Wesnoth 1.13.6 Entwicklung veröffentlicht
Schlacht um Wesnoth 1.13.6, das letzten Monat veröffentlicht wurde, ist die sechste Entwicklungsversion im 1.13.x-Serie und bietet eine Reihe von Verb...
So installieren Sie League of Legends auf Ubuntu 14.04
Wenn Sie ein Fan von League of Legends sind, dann ist dies eine Gelegenheit für Sie, League of Legends zu testen. Beachten Sie, dass LOL von PlayOnLin...
Installieren Sie das neueste OpenRA-Strategiespiel auf Ubuntu Linux
OpenRA ist eine Libre/Free Real Time Strategy Game Engine, die die frühen Westwood-Spiele wie den Klassiker Command & Conquer: Red Alert Red nachbilde...