git-describe(1): Skillnad mellan sidversioner
Admin (diskussion | bidrag) (Skapade sidan med '== NAMN == git-describe - Ge ett objekt ett läsbart namn baserat på en tillgänglig ref == SYNOPSIS == '''git describe''' [--all] [--tags] [--contains] [--abbrev=<n>] [<commit-ish>...] '''git describe''' [--all] [--tags] [--contains] [--abbrev=<n>] --dirty[=<märke>] '''git describe''' <blob> == BESKRIVNING == Kommandot hittar den senaste taggen som kan nås från en commit. Om taggen pekar direkt på commiten visas endast taggen. Annars suffixeras taggnamnet med ant...') |
(Ingen skillnad)
|
Nuvarande version från 22 april 2025 kl. 05.55
NAMN
git-describe - Ge ett objekt ett läsbart namn baserat på en tillgänglig ref
SYNOPSIS
git describe [--all] [--tags] [--contains] [--abbrev=<n>] [<commit-ish>...] git describe [--all] [--tags] [--contains] [--abbrev=<n>] --dirty[=<märke>] git describe <blob>
BESKRIVNING
Kommandot hittar den senaste taggen som kan nås från en commit. Om taggen pekar direkt på commiten visas endast taggen. Annars suffixeras taggnamnet med antalet ytterligare commits ovanpå det taggade objektet och det förkortade objektnamnet för den senaste commiten. Resultatet är ett "mänskligt läsbart" objektnamn som också kan användas för att identifiera commiten för andra git-kommandon.
Som standard (utan --all eller --tags) visar git describe endast annoterade taggar. För mer information om hur man skapar annoterade taggar, se alternativen -a och -s till git-tag(1).
Om det angivna objektet refererar till en blob kommer det att beskrivas som <commit-ish><sökväg>, så att bloben kan hittas på <sökväg> i <commit-ish>, vilket i sig beskriver den första commiten där denna blob förekommer i en omvänd revisionsvandring från HEAD.
ALTERNATIV
- <commit-ish>...
- Commit-ish objektnamn att beskriva. Standard är HEAD om det utelämnas.
- --dirty[=<märke>], --broken[=<märke>]
- Beskriv arbetskopians tillstånd. När arbetskopian matchar HEAD är
utmatningen densamma som "git describe HEAD". Om arbetskopian har lokala ändringar läggs "-dirty" till. Om ett arkiv är korrupt och Git inte kan avgöra om det finns lokala ändringar kommer Git att ge ett fel, om inte '--broken' anges, vilket lägger till suffixet "-broken" istället.
- --all
- Istället för att bara använda de annoterade taggarna, använd alla refs
som finns i namnrymden refs/. Detta alternativ aktiverar matchning av alla kända grenar, fjärrspårningsgrenar eller lätta taggar.
- --tags
- Istället för att bara använda de annoterade taggarna, använd alla taggar
som finns i namnrymden refs/tags. Detta alternativ aktiverar matchning av en lättviktstagg (icke-annoterad).
- --contains
- Istället för att hitta den tagg som föregår commiten, hitta den tagg som
kommer efter commiten och därmed innehåller den. Implicerar automatiskt --tags.
- --abbrev=<n>
- Istället för att använda standardantalet hexadecimala siffror (vilket
varierar beroende på antalet objekt i arkivet med ett standardvärde på 7) för det förkortade objektnamnet, använd <n> siffror, eller så många siffror som behövs för att bilda ett unikt objektnamn. Ett <n> på 0 undertrycker långformatet och visar endast närmaste tagg.
- --candidates=<n>
- Istället för att bara överväga de 10 senaste taggarna som kandidater för
att beskriva den inmatade commit-ish, överväg upp till <n> kandidater. Att öka <n> över 10 tar något längre tid men kan ge ett mer exakt resultat. Ett <n> på 0 gör att endast exakta matchningar matas ut.
- --exact-match
- Mata endast ut exakta matchningar (en tagg refererar direkt till den
angivna commiten). Detta är en synonym för --candidates=0.
- --debug
- Visa utförligt information om den sökningsstrategi som används till
standardfelströmmen. Taggnamnet kommer fortfarande att skrivas ut till standardutströmmen.
- --long
- Mata alltid ut det långa formatet (taggen, antalet commits och det
förkortade commit-namnet) även när det matchar en tagg. Detta är användbart när du vill se delar av commit-objektnamnet i "describe"- utmatningen, även när den aktuella commiten råkar vara en taggad version. Istället för att bara mata ut taggnamnet kommer det att beskriva en sådan commit som v1.2-0-gdeadbee (0:e commit sedan taggen v1.2 som pekar på objektet deadbee....).
- --match <mönster>
- Beakta endast taggar som matchar det givna glob(7)-mönstret,
exklusive prefixet "refs/tags/". Om det används med --all beaktas också lokala grenar och fjärrspårningsreferenser som matchar mönstret, exklusive prefixen "refs/heads/" respektive "refs/remotes/"; referenser av andra typer beaktas aldrig. Om det anges flera gånger kommer en lista med mönster att ackumuleras, och taggar som matchar något av mönstren kommer att beaktas. Använd --no-match för att rensa och återställa listan med mönster.
- --exclude <mönster>
- Beakta inte taggar som matchar det givna glob(7)-mönstret,
exklusive prefixet "refs/tags/". Om det används med --all beaktas inte heller lokala grenar och fjärrspårningsreferenser som matchar mönstret, exklusive prefixen "refs/heads/" respektive "refs/remotes/"; referenser av andra typer beaktas aldrig. Om det anges flera gånger kommer en lista med mönster att ackumuleras och taggar som matchar något av mönstren kommer att exkluderas. När det kombineras med --match kommer en tagg att beaktas om den matchar minst ett --match-mönster och inte matchar något av --exclude-mönstren. Använd --no-exclude för att rensa och återställa listan med mönster.
- --always
- Visa unikt förkortat commit-objekt som fallback.
- --first-parent
- Följ endast den första föräldra-commiten när en merge-commit påträffas.
Detta är användbart när du inte vill matcha taggar på grenar som slagits samman i målommitens historik.
EXEMPEL
Med något liknande git.gits nuvarande träd får jag:
[torvalds@g5 git]$ git describe parent v1.0.4-14-g2414721
dvs. den nuvarande headen på min "parent"-gren baseras på v1.0.4, men eftersom den har några commits ovanpå det har describe lagt till antalet ytterligare commits ("14") och ett förkortat objektnamn för själva committen ("2414721") i slutet.
Antalet ytterligare commits är antalet commits som skulle visas av "git log v1.0.4..parent". Hash-suffixet är "-g" + en entydig förkortning för spets-committen på parent (vilken var 2414721b194453f058079d897d13c4e377f92dc6). Längden på förkortningen skalar i takt med att arkivet växer, med hjälp av det ungefärliga antalet objekt i arkivet och lite matematik kring födelsedagsparadoxen, och är som standard minst 7. Prefixet "g" står för "git" och används för att tillåta beskrivning av versionen av en programvara beroende på vilket SCM programvaran hanteras med. Detta är användbart i en miljö där folk kan använda olika SCM:er.
Att göra en git describe på ett taggnamn visar bara taggnamnet:
[torvalds@g5 git]$ git describe v1.0.4 v1.0.4
Med --all kan kommandot använda grenhuvuden som referenser, så utmatningen visar också referenssökvägen:
[torvalds@g5 git]$ git describe --all --abbrev=4 v1.0.5^2 tags/v1.0.0-21-g975b [torvalds@g5 git]$ git describe --all --abbrev=4 HEAD^ heads/lt/describe-7-g975b
Med --abbrev satt till 0 kan kommandot användas för att hitta närmaste taggnamn utan suffix:
[torvalds@g5 git]$ git describe --abbrev=0 v1.0.5^2 tags/v1.0.0
Observera att suffixet du får om du skriver dessa kommandon idag kan vara längre än vad Linus såg ovan när han körde dessa kommandon, eftersom ditt Git-arkiv kan ha nya commits vars objektnamn börjar med 975b som inte fanns då, och suffixet "-g975b" ensamt kanske inte räcker för att skilja dessa commits åt.
SÖKSTRATEGI
För varje angiven commit-ish kommer git describe först att söka efter en tagg som taggar exakt den commiten. Annoterade taggar kommer alltid att föredras framför lätta taggar, och taggar med nyare datum kommer alltid att föredras framför taggar med äldre datum. Om en exakt matchning hittas kommer dess namn att matas ut och sökningen kommer att avbrytas.
Om ingen exakt matchning hittades kommer git describe att gå bakåt i commit-historiken för att hitta en förfäders-commit som har taggats. Förfäderns tagg kommer att matas ut tillsammans med en förkortning av den inmatade commit-ish:s SHA-1. Om --first-parent angavs kommer vandringen endast att beakta den första föräldern för varje commit.
Om flera taggar hittades under vandringen kommer den tagg som har det minsta antalet commits som skiljer sig från den inmatade commit-ish att väljas och matas ut. Här definieras minsta antal commits som skiljer sig som det antal commits som skulle visas av git log tag..input kommer att vara det minsta möjliga antalet commits.
BUGGAR
Trädobjekt såväl som taggobjekt som inte pekar på commits kan inte beskrivas. Vid beskrivning av blobar ignoreras de lätta taggar som pekar på blobar, men bloben beskrivs ändå som <commit-ish>:<sökväg> trots att den lätta taggen är att föredra.
GIT
Del av git(1)-sviten
KOLOFON
Den här sidan är en del av projektet git (Git distribuerat versionshanteringssystem). Information om projektet finns på <⟨http://git-scm.com/⟩>. Om du har en felrapport för den här manualsidan, se <⟨http://git-scm.com/community⟩>. Den här sidan hämtades från projektets uppströms Git-arkiv <⟨https://github.com/git/git.git⟩> den 2025-02-02. (Vid den tidpunkten var datumet för den senast hittade commiten i arkivet 2025-01-31.) Om du upptäcker några renderingsproblem i den här HTML-versionen av sidan, eller om du tror att det finns en bättre eller mer aktuell källa för sidan, eller om du har korrigeringar eller förbättringar av informationen i den här KOLOFONEN (som *inte* är en del av den ursprungliga manualsidan), skicka ett e-postmeddelande till man-pages@man7.org
Sidslut
Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/git-describe.1.html
Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till Datorhjälp Bromma som har sponsrat Linux.se med webbhotell.