git-check-ref-format(1)

Från Wiki.linux.se
Version från den 10 april 2025 kl. 06.24 av Admin (diskussion | bidrag) (→‎ALTERNATIV)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

NAMN

git-check-ref-format - Säkerställer att ett referensnamn är välformat

SYNOPSIS

git check-ref-format [--normalize]

            [--[no-]allow-onelevel] [--refspec-pattern]
            <refname>

git check-ref-format --branch <grennamn-kortform>

BESKRIVNING

Kontrollerar om ett givet refname är acceptabelt och avslutar med status nollskild om det inte är det.

En referens används i Git för att specificera grenar och taggar. Ett grenhuvud lagras i hierarkin refs/heads medan en tagg lagras i hierarkin refs/tags i referensnamnrymden (vanligtvis i katalogerna $GIT_DIR/refs/heads och $GIT_DIR/refs/tags eller som poster i filen $GIT_DIR/packed-refs om referenser är packade med git gc).

Git ålägger följande regler för hur referenser namnges:

1. De kan inkludera snedstreck / för hierarkisk (katalog)
   gruppering, men ingen snedstrecksseparerad komponent får börja med en
   punkt . eller sluta med sekvensen .lock.
2. De måste innehålla minst ett /. Detta tvingar fram närvaron av
   en kategori som heads/, tags/ etc. men de faktiska
   namnen är inte begränsade. Om alternativet --allow-onelevel
   används upphävs denna regel.
3. De får inte ha två på varandra följande punkter .. någonstans.
4. De får inte ha ASCII-kontrolltecken (dvs. byte vars värden är lägre
   än \040 eller \177 DEL), blanksteg, tilde ~, cirkumflex
   ^ eller kolon  :  någonstans.
5. De får inte ha frågetecken ?, asterisk * eller vänster
   hakparentes [ någonstans. Se alternativet --refspec-pattern
   nedan för ett undantag från denna regel.
6. De får inte börja eller sluta med ett snedstreck / eller
   innehålla flera på varandra följande snedstreck (se alternativet
   --normalize nedan för ett undantag från denna regel).
7. De får inte sluta med en punkt ...
8. De får inte innehålla sekvensen @{.
9. De får inte vara det enstaka tecknet @.

10. De får inte innehålla ett omvänt snedstreck \\.

Dessa regler gör det enkelt för skalskriptbaserade verktyg att parsa referensnamn, sökvägsexpansion av skalet när ett referensnamn används utan citattecken (av misstag) och undviker också tvetydigheter i vissa referensnamnsuttryck (se gitrevisions(7)):

1. Två punkter .. används ofta som i ref1..ref2, och i vissa
   kontexter betyder denna notation ^ref1 ref2 (dvs. inte i ref1
   och i ref2).
2. En tilde ~ och cirkumflex ^ används för att införa
   postfixoperationerna nth parent och peel onion.
3. Ett kolon  :  används som i srcref:dstref för att betyda
   "använd srcrefs värde och lagra det i dstref" i fetch- och
   push-operationer. Det kan också användas för att välja ett specifikt
   objekt, t.ex. med git cat-file: "git cat-file blob v1.3.3:refs.c".
4. At-öppen-klammer @{ används som en notation för att komma åt en
   reflog-post.

Med alternativet --branch tar kommandot ett namn och kontrollerar om det kan användas som ett giltigt grennamn (t.ex. vid skapande av en ny gren). Men var försiktig när du använder den tidigare utcheckningssyntaxen som kan referera till ett frånkopplat HEAD-läge. Regeln som git check-ref-format --branch $name implementerar kan vara striktare än vad git check-ref-format refs/heads/$name säger (t.ex. ett bindestreck kan förekomma i början av en referenskomponent, men det är uttryckligen förbjudet i början av ett grennamn). När det körs med alternativet --branch i ett arkiv expanderas inmatningen först för "tidigare utcheckningssyntax" @{-n}. Till exempel är @{-1} ett sätt att referera till det senaste som checkades ut med "git switch" eller "git checkout". Detta alternativ bör användas av porcelains för att acceptera denna syntax varhelst ett grennamn förväntas, så att de kan agera som om du skrev in grennamnet. Som ett undantag noteras att "tidigare utcheckningsoperation" kan resultera i ett commit-objektnamn när det N:te senaste som checkades ut inte var en gren.

ALTERNATIV

  • --[no-]allow-onelevel
Styr om referensnamn på en nivå accepteras (dvs. referensnamn som

inte innehåller flera /-separerade komponenter). Standard är --no-allow-onelevel.

  • --refspec-pattern
Tolka <refname> som ett referensnamnsmönster för en refspec (som

används med fjärrarkiv). Om detta alternativ är aktiverat får <refname> innehålla en enda * i refspecen (t.ex. foo/bar*/baz eller foo/bar*baz/ men inte foo/bar*/baz*).

  • --normalize
Normalisera refname genom att ta bort eventuella inledande

snedstreck (/) och reducera sekvenser av angränsande snedstreck mellan namnkomponenter till ett enda snedstreck. Om det normaliserade referensnamnet är giltigt skrivs det ut till standardutmatningen och avslutas med status 0, annars avslutas med status nollskild. (--print är ett föråldrat sätt att stava --normalize).

EXEMPEL

  • Skriv ut namnet på det föregående som checkades ut:
     $ git check-ref-format --branch @{-1}
  • Fastställ referensnamnet som ska användas för en ny gren:
     $ ref=$(git check-ref-format --normalize "refs/heads/$newbranch")||
     { echo "vi gillar inte '$newbranch' som ett grennamn." >&2 ; exit 1 ; }

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-check-ref-format.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 som har sponsrat Linux.se med webbhotell.