Ik kwam twee vreemde tekens tegen aan het einde van een git ls-remote-opdracht en ik vraag me af wat dit betekent?
0e4c39557ccb6789173c refs/tags/2011-11-04
966f8df553f18c486820 refs/tags/2011-11-04^{}
Weet je toevallig wat deze ^{} betekent? En waarom lijkt deze git-tag gedupliceerd?
Antwoord 1, autoriteit 100%
De ^{}
notatie wordt uitgelegd in de gitrevisions
handleiding:
<rev>^{}, e.g. v0.99.8^{}
Een achtervoegsel ^ gevolgd door een leeg accoladepaar betekent dat het object een tag kan zijn en recursief de referentie van de tag kan verwijderen totdat een niet-tagobject wordt gevonden.
In dit geval – refs/tags/2011-11-04
is de tag die verwijst naar het tag-object 0e4c39557ccb6789173c
. Door refs/tags/2011-11-04^{}
uit te voeren, kunnen we de referentie van de tag naar het uiteindelijke niet-tagobject, dat in dit geval is – 966f8df553f18c486820
(een verbinden). Merk op dat ^{}
een noop is wanneer toegepast op niet-tagobjecten.
Het git show-ref
commando kan worden gebruikt om zowel tags te zien als de uiteindelijke gederefereerde non-tag objecten:
$ git show-ref --tags
3521017556c5de4159da4615a39fa4d5d2c279b5 refs/tags/v0.99.9c
423325a2d24638ddcc82ce47be5e40be550f4507 refs/tags/v1.0rc4^{}
$ git show-ref --tags --dereference
3521017556c5de4159da4615a39fa4d5d2c279b5 refs/tags/v0.99.9c
6ddc0964034342519a87fe013781abf31c6db6ad refs/tags/v0.99.9c^{}
055e4ae3ae6eb344cbabf2a5256a49ea66040131 refs/tags/v1.0rc4
423325a2d24638ddcc82ce47be5e40be550f4507 refs/tags/v1.0rc4^{}
Van de git show-ref
handleiding:
-d
--dereference
Dereferentie-tags ook in object-ID’s. Ze worden weergegeven met “^{}” toegevoegd.
Antwoord 2, autoriteit 25%
Merk op dat git ls-remote
heeft een nieuw filter met git 2.8 (maart 2016).
Zie commit 99c08d4, vastleggen ba5f28b, , commit 40a8852, commit 54813bd(18 jan 2016) door Thomas Gummerer (tgummerer
).
Voorgesteld door: pedro rijo (pedrorijo91
).
(Samengevoegd door Junio C Hamano — gitster
—in commit bd6934a, 03 feb 2016)
Dat betekent dat u alleen de tags kunt weergeven met
git ls-remote --refs
Geef geen verwijderde tags of pseudorefs zoals HEAD in de uitvoer weer.