Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.42.1 → 2.53.0 no changes
-
2.42.0
2023-08-21
- 2.33.1 → 2.41.3 no changes
-
2.33.0
2021-08-16
- 2.22.1 → 2.32.7 no changes
-
2.22.0
2019-06-07
- 2.19.3 → 2.21.4 no changes
-
2.19.2
2018-11-21
- 2.17.0 → 2.19.1 no changes
-
2.16.6
2019-12-06
-
2.15.4
2019-12-06
- 2.14.6 no changes
-
2.13.7
2018-05-22
- 2.10.5 → 2.12.5 no changes
-
2.9.5
2017-07-30
- 2.7.6 → 2.8.6 no changes
-
2.6.7
2017-05-05
- 2.5.6 no changes
-
2.4.12
2017-05-05
- 2.1.4 → 2.3.10 no changes
-
2.0.5
2014-12-17
SYNOPSIS
git describe [--all] [--tags] [--contains] [--abbrev=<n>] [<incheckning-igt>…] git describe [--all] [--tags] [--contains] [--abbrev=<n>] --dirty[=<märk>] git describe <blob>
BESKRIVNING
Kommandot hittar den senaste taggen som är nåbar från en commit. Om taggen pekar på incheckning visas bara taggen. Annars läggs taggnamnet till suffixet med antalet ytterligare incheckningar ovanpå det taggade objektet och det förkortade objektnamnet för den senaste incheckning. Resultatet är ett "människoläsbart" objektnamn som också kan användas för att identifiera incheckningen till andra git-kommandon.
Som standard (utan --all eller --tags) visar git describe bara kommenterade taggar. För mer information om hur man skapar kommenterade taggar, se alternativen -a och -s till git-tag[1].
Om det givna objektet refererar till en blob, kommer den att beskrivas som <incheckning-igt>:<sökväg>, så att blobben kan hittas vid <sökväg> i <incheckning-igt>, vilket i sig beskriver den första incheckning där denna blob inträffar i en omvänd revisionspromenad från HEAD.
ALTERNATIV
- <incheckning-igt>…
-
Incheckning-igt namn att beskriva. Standardvärdet är HEAD om det utelämnas.
- --dirty[=<märk>]
- --broken[=<märk>]
-
Beskriv arbetskatalogen. När arbetsträdet matchar HEAD, är utdata detsamma som "git describe HEAD". Om arbetsträdet har en lokal modifiering läggs "-dirty" till. Om ett arkiv är korrupt och Git inte kan avgöra om det finns en lokal modifiering kommer Git att ge ett felmeddelande, såvida inte ‘--broken’ anges, vilket lägger till suffixet "-broken" istället.
- --all
-
Istället för att bara använda de kommenterade taggarna, använd vilken ref som helst som finns i namnrymden
refs/. Det här alternativet möjliggör matchning av vilken känd gren, fjärrspårningsgren eller lättviktstag som helst. - --tags
-
Istället för att bara använda de kommenterade taggarna, använd vilken tagg som helst som finns i namnrymden
refs/tags. Det här alternativet möjliggör matchning av en lätt (icke-kommenterad) tagg. - --contains
-
Istället för att hitta taggen som föregår incheckningen, hitta taggen som kommer efter incheckningen, och därmed innehåller den. Implicerar automatiskt --tags.
- --abbrev=<n>
-
Istället för att använda standardantalet hexadecimala siffror (som varierar beroende på antalet objekt i kodförrådet med standardvärdet 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 kommer att undertrycka långt format och endast visa den närmaste taggen.
- --candidates=<n>
-
Istället för att bara betrakta de 10 senaste taggarna som kandidater för att beskriva indata incheckning-igt, betrakta 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 kommer att orsaka att endast exakta matchningar matas ut.
- --exact-match
-
Skriv endast ut exakta matchningar (en tagg refererar direkt till den angiven incheckning). Detta är en synonym för --candidates=0.
- --debug
-
Visa utförligt information om den sökstrategi som används med standardfelet. Taggnamnet kommer fortfarande att skrivas ut till standardut.
- --long
-
Skriv alltid ut det långa formatet (taggen, antalet incheckningar och det förkortade inchecknings-namnet) även när det matchar en tagg. Detta är användbart när du vill se delar av inchecknings-objektets namn i "describe"-utdata, även när incheckningeni fråga råkar vara en taggad version. Istället för att bara skriva ut taggnamnet kommer den att beskriva en sådan incheckning som v1.2-0-gdeadbee (0:e incheckningen sedan taggen v1.2 som pekar på objektets dödbi….).
- --match <mönster>
-
Beakta endast taggar som matchar det givna mönstret
glob(7), exklusive prefixet "refs/tags/". Om det används med--all, beaktas även lokala grenar och fjärrspårningsreferenser som matchar mönstret, exklusive prefixet "refs/heads/" respektive "refs/remotes/". Referenser av andra typer beaktas aldrig. Om de 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-matchför att rensa och återställa listan med mönster. - --exclude <mönster>
-
Beakta inte taggar som matchar det givna mönstret
glob(7), exklusive prefixet "refs/tags/". Om det används med--all, beaktas inte heller lokala grenar och fjärrspårningsreferenser som matchar mönstret, exklusive "refs/heads/" respektive "refs/remotes/" prefix; referenser av andra typer beaktas aldrig. Om de 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 när den matchar minst ett --match-mönster och inte matchar något av --exclude-mönstren. Använd--no-excludeför att rensa och återställa listan med mönster. - --always
-
Visa unikt förkortade incheckningsobjekt som reserv.
- --first-parent
-
Följ endast den första förälder-incheckning när du ser en sammanslagings-incheckning. Detta är användbart när du inte vill matcha taggar på grenar som sammanslagits målincheckningens historik.
EXEMPEL
Med något i stil med git.git aktuellt träd, får jag:
[torvalds@g5 git]$ git describe parent v1.0.4-14-g2414721
d.v.s. den nuvarande huvudfilen för min "föräldra"-gren är baserad på v1.0.4, men eftersom den har några incheckningar utöver det har describe lagt till antalet ytterligare incheckningar ("14") och ett förkortat objektnamn för själva incheckningen ("2414721") i slutet.
Antalet ytterligare incheckningar är det antal incheckningar som skulle visas av "git log v1.0.4..parent". Hash-suffixet är "-g" + en entydig förkortning för top-incheckningen för föräldern (som var 2414721b194453f058079d897d13c4e377f92dc6). Längden på förkortningen skalas allt eftersom kodförrådet växer, med hjälp av det ungefärliga antalet objekt i kodförrådet och lite matematik kring födelsedagsparadoxen, och standardvärdet är minst 7. Prefixet "g" står för "git" och används för att beskriva versionen av en programvara beroende på vilken SCM programvaran hanteras med. Detta är användbart i en miljö där människor kan använda olika SCM:er.
Att göra en git describe på ett tagnamn visar bara taggnamnet:
[torvalds@g5 git]$ git describe v1.0.4 v1.0.4
Med --all kan kommandot använda grenhuvuden som referenser, så utdata visar även 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-kodförråd kan ha nya incheckningar vars objektnamn börjar med 975b som inte existerade då, och suffixet "-g975b" ensamt kanske inte är tillräckligt för att tydliggöra dessa incheckningar.
SÖKSTRATEGI
För varje incheckning-igt som anges, kommer git describe först att leta efter en tagg som taggar exakt den incheckningen. Annoterade taggar kommer alltid att föredras framför lättviktstaggar, 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 visas och sökningen stoppas.
Om en exakt matchning inte hittades, kommer git describe att gå tillbaka genom inchecknings-historiken för att hitta en förälder-incheckning som har taggats. Förfäderns tagg kommer att matas ut tillsammans med en förkortning av indata-incheckning-igts SHA-1. Om --first-parent angavs kommer vandringen endast att beakta den första föräldern till varje incheckning.
Om flera taggar hittades under promenaden kommer den tagg som har minst antal incheckningar som skiljer sig från indata-incheckning-igt att väljas och matas ut. Här definieras fewest incheckningar annorluda som antalet incheckningar som skulle visas av git log tag..input, vilket skulle vara det minsta antalet incheckninger som är möjliga.
BUGGAR
Trädobjekt såväl som taggobjekt som inte pekar på incheckningars kan inte beskrivas. När man beskriver blobbar ignoreras de lättviktiga taggarna som pekar på blobbar, men blobben beskrivs fortfarande som <incheckning-igt>:<sökväg> trots att lättviktstaggen är gynnsam.
GIT
En del av git[1]-sviten