2010-03-28 4 views

Antwort

8

In git, ein „normaler“ (kommentiert, nicht leichter) tag ist ein Ziel an mich, die Metadaten enthalten und die SHA1 des Objekts setzt Tags. Es gibt ein schönes Bild im Bereich der Git Community-Buch auf the git object model (nach unten scrollen).

Also, wenn Sie Show-ref an einem normalen Tag verwenden, wird es normalerweise gibt Ihnen Informationen über das Tag-Objekt. Mit der Option -d/--dereference wird das Tag in das Objekt, auf das sich das Tag bezieht, dereferenziert und stattdessen Informationen darüber bereitgestellt.

Und ein Hinweis auf leichte vs. kommentierten Tags, falls Sie nicht wissen, dass: ein leichter Tag wird erstellt von git tag <tag name> mit (dh ohne einer der Metadaten-Bereitstellung von Optionen wie -a, -s oder -u) . Es ist überhaupt kein Tag-Objekt, nur ein Ref-Verweis auf das Objekt, das Sie getaggt haben. Wenn Sie eine dieser Optionen angeben, fügen Sie dem Tag Metadaten hinzu, sodass git ein Tag-Objekt erstellt, das diese Option enthält.

+0

gute Zusammenfassung + 1 Siehe auch http://stackoverflow.com/questions/1194385/seeing-what-revision-goes-with-a-tag-in-git:. „, Wenn Sie nicht wissen,/egal, ob Das Tag ist ein Tag-Objekt oder ein Leichtgewicht-Label, aber Sie möchten nur das Commit sehen, das Sie mit 'git show v1.5.0^{}' oder 'git rev-parse v1.5.0^{}' für eine scriptbare Methode zum Abrufen verwenden können die Commit-ID. " – VonC

+0

Der hilfreiche Hinweis von VonC ist wahrscheinlich etwas merkwürdig für jemanden, der mit Git nicht sehr vertraut ist. Das '^ {}' Suffix ist eine spezielle Notation für Tags; es bedeutet "das Tag wiederholt dereferenzieren, bis Sie etwas außer einem Tag finden" - für den Fall, dass Sie etwas Verrücktes getan haben, wie ein Tag mit einem Tag taggen. – Cascabel

+0

true, die Notation ist ungerade;) Wie zum Tagging eines Tags mit einem Tag, kann man sich vorstellen, dass es helfen könnte, eine Art von Metadaten hinzuzufügen (wie zum Beispiel ein "Promotion Level" "abgelehnt", "getestet", "freigegeben") , ...) zu einem bestehenden Tag-Commit. – VonC