Hier ist die man-Seite für git show-ref -d. Sie haben auch ein Beispiel an der Unterseite. Trotzdem kann ich nicht verstehen, was die Dereferenz macht.was ist dereferenz im rahmen von git show-ref -d
Antwort
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.
- 1. Was ist (\ d +)/(\ d +) in Regex?
- 2. Was ist 4'd # -Notation?
- 3. Was ist der Unterschied zwischen: D und: D :?
- 4. Was sind 'ist' Aussagen in D?
- 5. Was ist das Äquivalent von `git sauber -f -d -x` in magit
- 6. PHP Dereferenz Array Elemente
- 7. Was ist ein Klassenmonitor in D?
- 8. Was ist git Trosse?
- 9. Was ist Git Beschneiden?
- 10. Was ist der Unterschied zwischen "Git" im Allgemeinen und Github?
- 11. Was ist der Zweck von git-mv?
- 12. Was ist der Zweck von .git/log
- 13. Was ist ein git Upstream
- 14. Ist diese Schließung im globalen Rahmen?
- 15. Was ist ein git Themenzweig?
- 16. Was ist der Unterschied zwischen Rahmen und Layout im Größeninspektor von Interface Builder?
- 17. Wie wird SASS im ionischen Rahmen verwendet?
- 18. Was macht _ ("Text"), d.
- 19. Git-Diff gegen Git-Log? Was ist der Unterschied?
- 20. Ist in [\ w \ d] nicht \ d redundant?
- 21. Mysql im Frühjahr Rahmen MySQLSyntaxErrorException
- 22. Was ist die beste IDE für DigitalMars D Programmierung?
- 23. Wie im Rahmen Debuggen von Quellcode
- 24. Was ist der Unterschied zwischen Jasminfehler von Timeouts im Winkelmesser?
- 25. atomic.AddInt64 Verursacht ungültige Speicheradresse oder Nullzeiger-Dereferenz
- 26. Was ist "Modul" im Docstring von len?
- 27. Was ist der Unterschied zwischen Git Push und Git Pull?
- 28. Was ist der Unterschied zwischen Git am und Git anwenden?
- 29. IEnumerable: Was bedeutet es, im Rahmen der OOP
- 30. scanf ("% d", int) gut gestern, nicht heute. Was ist los?
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
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
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