400 Stimmen

Warum sollte ich mich für leichtgewichtige oder kommentierte Tags interessieren?

Ich bin letztes Jahr von Subversion auf Git als mein tägliches VCS umgestiegen und versuche immer noch, die Feinheiten des "Git-Denkens" zu begreifen.

Die Frage, die mich in letzter Zeit beschäftigt hat, ist die nach "leichtgewichtigen" bzw. kommentierten bzw. signierten Tags. Es scheint ziemlich allgemein akzeptiert zu sein, dass kommentierte Tags den leichtgewichtigen Tags für alle realen Anwendungen überlegen sind, aber die Erklärungen, die ich gefunden habe, warum das der Fall ist, scheinen immer darauf hinauszulaufen, entweder "weil beste Praktiken" o "weil sie anders sind" . Leider sind das sehr unbefriedigende Argumente, ohne zu wissen warum die besten Praktiken oder wie diese Unterschiede . zu meiner Git-Verwendung.

Als ich zum ersten Mal zu Git wechselte, schienen leichtgewichtige Tags das Beste seit der Erfindung des Brotes zu sein; ich konnte einfach auf einen Commit zeigen und sagen "das war 1.0". Ich habe Schwierigkeiten zu verstehen, wie ein Tag jemals mehr als das sein könnte, aber ich kann nicht glauben, dass die Git-Experten der Welt willkürlich kommentierte Tags bevorzugen! Worum geht es also bei dem ganzen Trubel?

(Bonuspunkte: Warum sollte ich jemals ein Schild unterschreiben müssen?)

EDIT

Ich habe erfolgreich überzeugt dass kommentierte Tags eine gute Sache sind - zu wissen, wer wann getaggt hat, ist wichtig! Haben Sie einen Tipp für gute Tag-Anmerkungen? Beide git tag -am "tagging 1.0" 1.0 und der Versuch, das Commit-Protokoll seit dem letzten Tag zusammenzufassen, fühlen sich wie verlorene Strategien an.

6voto

evilkos Punkte 535

Ich habe eine gute Verwendung für leichtgewichtige Tags gefunden - das Erstellen einer Version auf GitHub im Nachhinein.

Wir haben unsere Software veröffentlicht und hatten die notwendigen Commits, wir haben uns nur nicht die Mühe gemacht, den Abschnitt "Release" auf GitHub zu pflegen. Und als wir dem ein wenig Aufmerksamkeit schenkten, wurde uns klar, dass wir auch einige frühere Versionen hinzufügen wollten, mit korrekten alten Veröffentlichungsdaten für sie.

Wenn wir nur ein kommentiertes Tag für eine alte Übertragung erstellen würden, würde GitHub das Datum der Veröffentlichung aus dem Tag-Objekt übernehmen. Wenn wir dagegen ein leichtgewichtiges Tag für diesen alten Commit erstellt haben, wird die Veröffentlichung mit dem korrekten (alten) Datum angezeigt. Quelle @ GitHub-Hilfe, 'Über Veröffentlichungen'

Es scheint auch möglich zu sein, das gewünschte Datum für eine kommentierte Übergabe anzugeben, aber so einfach scheint es mir nicht zu sein: https://www.kernel.org/pub/software/scm/git/docs/git-tag.html#_on_backdating_tags

1voto

Ezh Punkte 466

Für mich ist ein wichtiger Unterschied, dass Lightweight-Tags keinen Zeitstempel haben. Nehmen wir an, Sie haben mehrere leichtgewichtige Tags hinzugefügt:

git tag v1
git tag v2
git tag v3

und dann, vielleicht später, möchten Sie das letzte hinzugefügte leichte Tag bekommen. Es gibt keine Möglichkeit, dies zu tun. Weder "git describe" noch "git tag" werden Ihnen das letzte Lightweight-Tag chronologisch anzeigen. "git tag -l" kann alle zurückgeben oder sie in Lex-Reihenfolge sortieren, aber nicht nach Datum/Zeit. "git describe --tags" wird "v1" zurückgeben, was definitiv nicht das letzte hinzugefügte Tag ist.

Andererseits, wenn Sie kommentierte Tags hinzufügen:

git tag v1 -m v1
git tag v2 -m v1
git tag v3 -m v1

Sie können immer den Zeitstempel jedes Tags abfragen und "git describe" wird mit Sicherheit "v3" zurückgeben, was wirklich das letzte hinzugefügte Tag ist.

0voto

Nesha Zoric Punkte 5358

Kommentierte Tags speichern zusätzliche Metadaten wie den Namen des Autors, Versionshinweise, die Tag-Nachricht und das Datum als vollständige Objekte in der Git-Datenbank. All diese Daten sind für eine öffentliche Veröffentlichung Ihres Projekts wichtig.

git tag -a v1.0.0

Leichtgewichtige Tags sind die einfachste Art, ein Tag zu Ihrem Git-Repository hinzuzufügen, da sie nur den Hash des Commits speichern, auf den sie sich beziehen. Sie können wie "Lesezeichen" für einen Commit fungieren und eignen sich daher hervorragend für den privaten Gebrauch.

Git-Tag v1.0.0

Sie können alte Tags sortieren, auflisten, löschen, anzeigen und bearbeiten. All diese Funktionen helfen Ihnen, bestimmte Versionen Ihres Codes zu identifizieren. Ich fand dieser Artikel die Ihnen eine bessere Vorstellung davon vermitteln können, was Tags leisten können.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X