Letzten git Tag vom remote Repository ermitteln

      0
git LastTag

Wenn man git und ein permanentes Versionierungsschema benutzt, hat man irgendwann einen riesigen Pool an Tags. Auf der Arbeit sind wir bei unserem größten Projekt mittlerweile bei Version 1.212.3 angelangt. Da ich mit sechs oder mehr Kollegen arbeite, hole ich dabei nicht jeden git Tag ab, der gepushed wurde. Trotzdem muss ich ja aber das Schema einhalten. In diesem Fall GitLab zu öffnen, das Repository herauszusuchen und mir die Tagliste anzusehen, ist für mich zu unpraktisch. Ich habe daher ein kleines Skript geschrieben, um mir den letzten git Tag ausgeben zu lassen, welches ich gerne mit dir teile.

Ich habe den folgenden Artikel schon einmal in meinem Portfolio veröffentlicht, hier scheint er mir aber besser aufgehoben zu sein. Inspiriert wurde ich dabei durch diesen Stack Overflow Artikel.

Konfiguration

Ich arbeite unter Mac OS. Um das Skript zu nutzen musst du zunächst die coreutils installieren. Diese stellen den Befehl gsort zur Verfügung, den du für das Skript brauchst. Unter Linux gibt es den Befehl von Haus aus.

Ich habe die coreutils ganz einfach via homebrew installiert:

$ brew install coreutils

Öffne nun deine globale .gitconfig oder die projektbasierte unter .git/config und füg den folgenden Code ein:

[alias]
    lasttag = !git ls-remote --tags \"$(git remote get-url origin)\" | gsort -t / -k 3 -V | tail -n 1 | sed -e "s/^.*[[:space:]]//" -e "s#refs/tags/##" -e "s/[^v.0-9]*//g"

Ab jetzt kannst du dein Terminal öffnen und mit dem folgenden Befehl den letzten git Tag des jeweiligen git Repositories abfragen:

$ git lastTag

Der Befehl im Detail

  1. mit git ls-remote --tags gebt ihr eine Liste aller remote Tags aus
  2. mit gsort wird die Ausgabe aus 1. nach Versionsnummer (-V) sortiert
  3. tail -n 1 gibt nur die letzte Zeile zurück
  4. die sed Befehle sorgen dann dafür diese eine Zeile um alles zu bereinigen, was nicht der Tag ist. Es werden nur Zahlen, Punkte und der Buchstabe „v“, den viele als Präfix nutzen, behalten.

Neben diesem git alias kannst du vielleicht auch ein deploy Skript gut gebrauchen. Hier geht es zum Artikel

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert