Svenska ▾ Topics ▾ Latest version ▾ git-status last updated in 2.53.0

NAMN

git-status - Visar statusen för arbetskatalogen

SYNOPSIS

git status [<flaggor>] [--] <sökvägsspec>…​

BESKRIVNING

Visar sökvägar som har skillnader mellan indexfilen och den aktuella HEAD-incheckningen, sökvägar som har skillnader mellan arbetskatalog och indexfilen, och sökvägar i arbetskatalog som inte spåras av Git (och inte ignoreras av gitignore[5]). De första är vad du skulle checka-in genom att köra git commit; den andra och tredje är vad du skulle kunna checka-in genom att köra git add innan du kör git commit.

ALTERNATIV

-s
--short

Ge utdata i kortformat.

-b
--branch

Visa gren-- och spårningsinformation även i kortformat.

--show-stash

Visar antalet poster som för närvarande är undangömda.

--porcelain[=<version>]

Ge utdata i ett lätttolkat format för skript. Detta liknar den korta utdatafilen, men kommer att förbli stabil i alla Git-versioner och oavsett användarkonfiguration. Se nedan för mer information.

Parametern <version> används för att ange formatversionen. Detta är valfritt och standardinställningen är originalversionens format v1.

--long

Ge utdata i long-format. Detta är standardinställningen.

-v
--verbose

Förutom namnen på filer som har ändrats, visa även de textändringar som är köade att checkas-in (dvs. som utdata från git diff --cached). Om -v anges två gånger, visa även de ändringar i arbetskatalogen som ännu inte har iscensatts (dvs. som utdata från git diff).

-u[<läge>]
--untracked-files[=<läge>]

Visa ospårade filer.

Parametern läge används för att ange hanteringen av filer som inte spåras. Den är valfri: standardvärdet är all, och om den anges måste den vara fäst vid alternativet (t.ex. -uno, men inte -u no).

De möjliga alternativen är:

no

Visa inga ospårade filer.

normal

Visa ospårade filer och kataloger.

all

Visa även enskilda filer i ospårade kataloger.

När alternativet -u inte används visas ospårade filer och kataloger (dvs. samma sak som att ange normal), för att hjälpa dig att undvika att glömma att lägga till nyskapade filer. Eftersom det kräver extra arbete att hitta ospårade filer i filsystemet kan det här läget ta lite tid i ett stort arbetskatalog. Överväg att aktivera ospårad cache och delat index om det stöds (se git update-index --untracked-cache och git update-index --split-index). Annars kan du använda no för att få git status att returnera snabbare utan att visa ospårade filer. Alla vanliga stavningar för det booleskt värde true tas som normal och false som no.

Standardvärdet kan ändras med hjälp av konfigurationsvariabeln status.showUntrackedFiles som är dokumenterad i git-config[1].

--ignore-submodules[=<när>]

Ignorera ändringar i undermoduler när du letar efter ändringar. <när> kan vara antingen none, untracked, dirty eller all, vilket är standardvärdet.

none

kommer att betrakta undermodulen som modifierad när den antingen innehåller ospårade eller modifierade filer eller när dess HEAD skiljer sig från incheckningen som registrerats i superprojektet och kan användas för att åsidosätta alla inställningar i ignore-alternativet i git-config[1] eller gitmodules[5].

untracked

undermoduler anses inte vara smutsiga när de bara innehåller ospårat innehåll (men de skannas fortfarande efter modifierat innehåll).

dirty

ignorera alla ändringar i arbetsträdet för undermoduler, endast ändringar i de incheckningar som lagras i superprojektet visas (detta var beteendet före 1.7.0).

all

döljer alla ändringar av undermoduler (och undertrycker utdata från undermodulsammanfattningar när konfigurationsalternativet status.submoduleSummary är satt).

--ignored[=<läge>]

Visa även ignorerade filer.

Parametern läge används för att ange hanteringen av ignorerade filer. Den är valfri: standardvärdet är traditional.

De möjliga alternativen är:

traditional

Visa ignorerade filer och kataloger, såvida inte --untracked-files=all anges, i vilket fall enskilda filer i ignorerade kataloger visas.

no

Visa inga ignorerade filer.

matching

Visa ignorerade filer och kataloger som matchar ett ignoreringsmönster.

Sökvägar som explicit matchar ett ignorerat mönster visas. Om en katalog matchar ett ignoreringsmönster visas den, men inte sökvägar som finns i den ignorerade katalogen. Om en katalog inte matchar ett ignoreringsmönster, men allt innehåll ignoreras, visas inte katalogen, men allt innehåll visas.

-z

Avsluta poster med NUL, istället för LF. Detta innebär utdataformatet --porcelain=v1 om inget annat format anges.

--column[=<alternativ>]
--no-column

Visa ospårade filer i kolumner. Se konfigurationsvariabeln column.status för syntax för alternativ. --column och --no-column utan alternativ motsvarar always respektive never.

--ahead-behind
--no-ahead-behind

Visa eller visa inte detaljerade framåt/bakåt antalet för grenen i förhållande till dess uppströmsgren. Standardvärdet är sant.

--renames
--no-renames

Slå på/av namndetektering oavsett användarkonfiguration. Se även git-diff[1] --no-renames.

--find-renames[=<n>]

Aktivera namnbytesdetektering, och ställ in likhetströskeln om du vill. Se även git-diff[1] --find-renames.

<sökvägsspec>...

Se posten pathspec i gitglossary[7].

UTMATNING

Utdata från det här kommandot är utformat för att användas som en kommentar i en inchecknings-mall. Standardformatet, det långa, är utformat för att vara människoläsbart, utförligt och beskrivande. Dess innehåll och format kan ändras när som helst.

Sökvägarna som nämns i utdata, till skillnad från många andra Git-kommandon, skapas relativa till den aktuella katalogen om du arbetar i en underkatalog (detta är avsiktligt för att underlätta klippning och klistring). Se konfigurationsalternativet status.relativePaths nedan.

Kortformat

I det korta formatet visas statusen för varje sökväg som en av dessa former

<xy> <sökväg>
<xy> <urspr.-sökväg> -> <sökväg>

där <urspr.-sökväg> är varifrån det omdöpta/kopierade innehållet kommer. <urspr.-sökväg> visas bara när posten har bytt namn eller kopierats. <xy> är en tvåbokstavsstatuskod XY.

The fields (including the ->) are separated from each other by a single space. If a filename contains whitespace or other nonprintable characters, that field will be quoted in the manner of a C string literal: surrounded by ASCII double quote (34) characters, and with interior special characters backslash-escaped.

Det finns tre olika typer av tillstånd som visas med detta format, och var och en använder <xy>-syntaxen på olika sätt:

  • När en sammanslagning sker och sammanslagningen lyckades, eller utanför en sammanslagning situationen, X visar statusen för indexet och Y visar statusen för arbetskatalog.

  • När en sammanslagningskonflikt har uppstått och ännu inte har lösts, visas X och Y visar tillståndet som introduceras av varje huvud i sammanslagningen, relativt till den gemensamma förfadern. Dessa sökvägar sägs vara icke-sammanslagna.

  • När en sökväg inte spåras är X och Y alltid desamma, eftersom de är okänd för indexet. ?? används för ospårade sökvägar. Ignorerade filer listas inte om inte --ignored används; om så är fallet indikeras ignorerade filer med !!.

Note that the term merge here also includes rebases using the default --merge strategy, cherry-picks, and anything else using the merge machinery.

I följande tabell, visas dessa tre klasser i separata avsnitt, och dessa tecken används för fälten X och Y för de två första avsnitten som visar spårade sökvägar:

' '

omodified

M

ändrad

T

filtyp ändrad (vanlig fil, symbolisk länk eller undermodul)

A

lade till

D

raderad

R

omdöpt

C

kopierad (om konfigurationsalternativet status.renames är satt till "copies")

U

uppdaterad men ej sammanslagen

X Y Betydelse

[AMD]

ej uppdaterad

M

[ MTD]

uppdaterad i index

T

[ MTD]

typ ändrad i index

A

[ MTD]

tillagd i index

D

borttagen från index

R

[ MTD]

omdöpt i index

C

[ MTD]

kopierad i index

[MTARC]

index- och arbetskatalog matchar

[ MTARC]

M

arbetskatalog ändrat sedan index

[ MTARC]

T

typ ändrad i arbetskatalog sedan index

[ MTARC]

D

borttagen i arbetskatalog

R

omdöpt i arbetskatalog

C

copied in work tree

D

D

osammanslagna, båda borttagnad

A

U

osammanslagna, tillagda av oss

U

D

osammanslagna, borttagna av dem

U

A

osammanslagna, borttagna av dem

D

U

osammanslagna, borttagna av oss

A

A

osammanslagna, båda tillagda

U

U

osammanslagna, båda modifierade

?

?

ospårade

!

!

Undermoduler har mer tillstånd och rapporterar istället

M

Undermodulen har en annan HEAD än den som är registrerad i indexet

m

undermodulen har ändrat innehåll

?

undermodulen har ospårade filer

Detta beror på att modifierat innehåll eller ospårade filer i en undermodul inte kan läggas till via git add i superprojektet för att förbereda en incheckning.

m och ? tillämpas rekursivt. Om till exempel en kapslad undermodul i en undermodul innehåller en ospårad fil rapporteras detta också som ?.

Om -b används föregås kortformatstatusen av en rad

{empty}## <branchname> <tracking-info>

Porcelain Format Version 1

Version 1 av porslinsformatet liknar det korta formatet, men garanteras att det inte ändras på ett bakåtinkompatibelt sätt mellan Git-versioner eller baserat på användarkonfiguration. Detta gör det idealiskt för parsning med skript. Beskrivningen av det korta formatet ovan beskriver även porslinsformatet, med några få undantag:

  1. Användarens color.status-konfiguration respekteras inte; färgen kommer alltid att vara avstängd.

  2. Användarens konfiguration av status.relativePaths respekteras inte; visade sökvägar kommer alltid att vara relativa till förvarets rot.

Det finns också ett alternativt -z-format som rekommenderas för maskinparsning. I det formatet är statusfältet detsamma, men vissa andra saker ändras. För det första utelämnas -> från namnbytesposter och fältordningen är omvänd (t.ex. från -> till blir till från). För det andra följer en NUL (ASCII 0) varje filnamn och ersätter mellanslag som fältavgränsare och den avslutande nyradstecknet (men ett mellanslag separerar fortfarande statusfältet från det första filnamnet). För det tredje är filnamn som innehåller specialtecken inte särskilt formaterade; ingen citattecken ellerbakåtsnedstreck används.

Alla ändringar i undermoduler rapporteras som modifierad M istället för m eller enstaka ?.

Porcelain Format Version 2

Version 2-formatet lägger till mer detaljerad information om arbetsträdets tillstånd och ändrade objekt. Version 2 definierar också en utökningsbar uppsättning lätttolkade valfria rubriker.

Rubrikrader börjar med # och läggs till som svar på specifika kommandoradsargument. Parsers bör ignorera rubriker som de inte känner igen.

Grenrubriker

Om --branch anges skrivs en serie rubrikrader ut med information om den aktuella grenen.

Rad Anteckningar

# branch.oid <incheckning> | (initial)

Aktuell commit.

# branch.head <gren> | (fristående)

Aktuell gren.

# branch.upstream <uppströmsgren>

Om uppströms är satt.

# branch.ab +<framåt> -<bakom>

Om uppströms är satt och incheckningen finns.

Stash Information

Om --show-stash anges skrivs en rad ut som visar antalet ”stash”-poster om det inte är noll:

# stash <N>

Ändrade spårade poster

Efter rubrikerna skrivs en serie rader ut för spårade poster. Ett av tre olika radformat kan användas för att beskriva en post beroende på typen av ändring. Spårade poster skrivs ut i en odefinierad ordning; parsers bör tillåta en blandning av de tre radtyperna i valfri ordning.

Vanliga ändrade poster har följande format:

1 <XY> <sub> <mH> <mI> <mW> <hH> <hI> <sökväg>

Omdöpta eller kopierade poster har följande format:

2 <XY> <sub> <mH> <mI> <mW> <hH> <hI> <X><poäng> <sökväg><sep><urspr.Sökväg>
Fält Betydelse

<XY>

Ett 2-teckensfält som innehåller de köade och ej köade XY-värdena beskrivna i kortformat, där oförändrad indikeras av ett "." istället för ett mellanslag.

<sub>

Ett 4-teckensfält som beskriver undermodulens tillstånd. "N…​" när posten inte är en undermodul. S<c><m><u> när posten är en undermodul.

  • <c> är "C" om incheckningen ändrades; annars ".".

  • <m> är "M" om den har spårade ändringar; annars ".".

  • <u> är "U" om det finns ospårade ändringar; annars ".".

<mH>

Det oktala filläget i HEAD.

<mI>

Det oktala filläget i indexet.

<mW>

Det oktala filläget i arbetsträdet.

<hH>

Objektnamnet i HEAD.

<hI>

Objektnamnet i indexet.

<X><score>

Omdöpnings- eller kopieringspoängen (som anger procentandelen av likhet mellan källan och målet för flytten eller kopian). Till exempel "R100" eller "C75".

<sökväg>

Sökvägen. I en omdöpt/kopierad post är detta målsökvägen.

<sep>

När alternativet -z används separeras de två sökvägarna med en NUL (ASCII 0x00) byte; annars separeras de av en TAB (ASCII 0x09) byte.

<urspr.Sökväg>

Sökvägen i incheckning vid HEAD eller i indexet. Detta finns bara i en omdöpt/kopierad post och anger var det omdöpta/kopierade innehållet kom ifrån.

Osammanfogade poster har följande format; det första tecknet är ett "u" för att skilja från vanliga ändrade poster.

u <XY> <sub> <m1> <m2> <m3> <mW> <h1> <h2> <h3> <sökväg>
Fält Betydelse

<XY>

Ett 2-teckensfält som beskriver konflikttypen enligt beskrivningen i kortformat.

<sub>

Ett 4-teckensfält som beskriver submodulens tillstånd enligt beskrivningen ovan.

<m1>

Det oktala filläget i steg 1.

<m2>

Det oktala filläget i steg 2.

<m3>

Det oktala filläget i steg 3.

<mW>

Det oktala filläget i arbetsträdet.

<h1>

Objektnamnet i steg 1.

<h2>

Objektnamnet i steg 2.

<h3>

Objektnamnet i steg3.

<path>

Sökvägen.

Andra poster

Efter de spårade posterna (och om begärt) skrivs en serie rader ut för ospårade och sedan ignorerade objekt som hittats i arbetsträdet.

Ospårade objekt har följande format:

? <sökväg>

Ignorerade objekt har följande format:

! <sökväg>

Sökvägsformats noteringar och -z

När alternativet -z anges skrivs sökvägar ut som de är och utan citattecken, och rader avslutas med en NUL (ASCII 0x00) byte.

Utan -z-alternativet citeras sökvägar med "ovanliga" tecken enligt beskrivningen för konfigurationsvariabeln core.quotePath (se git-config[1]).

KONFIGURATION

The command honors color.status (or status.color — they mean the same thing and the latter is kept for backward compatibility) and color.status.<slot> configuration variables to colorize its output.

Om konfigurationsvariabeln status.relativePaths är satt till falskt, är alla visade sökvägar relativa till förvars-roten, inte till den aktuella katalogen.

Om status.submoduleSummary är satt till ett tal som inte är noll eller sant (identiskt med -1 eller ett obegränsat tal), kommer undermodulsammanfattningen att aktiveras för det långa formatet och en sammanfattning av incheckningar för modifierade undermoduler kommer att visas (se alternativet --summary-limit i git-submodule[1]). Observera att sammanfattningsutdata från kommandot status kommer att undertryckas för alla undermoduler när diff.ignoreSubmodules är satt till all eller endast för de undermoduler där submodule.<namn>.ignore=all. För att även visa sammanfattningen för ignorerade undermoduler kan du antingen använda kommandoradsalternativet --ignore-submodules=dirty eller kommandot git submodule summary, som visar en liknande utdata men inte respekterar dessa inställningar.

BAKGRUNDSUPPDATERING

Som standard uppdaterar git status automatiskt indexet, uppdaterar den cachade statistikinformationen från arbetskatalogen och skriver ut resultatet. Att skriva ut det uppdaterade indexet är en optimering som inte är absolut nödvändig (status beräknar värdena för sig själv, men att skriva ut dem är bara för att rädda efterföljande program från att upprepa vår beräkning). När status körs i bakgrunden kan låset som hålls under skrivningen komma i konflikt med andra samtidiga processer, vilket kan orsaka att de misslyckas. Skript som kör status i bakgrunden bör överväga att använda git --no-optional-locks status (se git[1] för detaljer).

OSPÅRADE FILER OCH PRESTANDA

git status kan vara väldigt långsamt i stora arbetsträd om/när det behöver söka efter filer och kataloger som inte spåras. Det finns många konfigurationsalternativ tillgängliga för att påskynda detta genom att antingen undvika arbetet eller använda cachade resultat från tidigare Git-kommandon. Det finns ingen optimal uppsättning inställningar som är rätt för alla. Vi listar en sammanfattning av de relevanta alternativen för att hjälpa dig, men innan du går in på listan kanske du vill köra git status igen, eftersom din konfiguration kanske redan cachar git status-resultat, så det kan vara snabbare vid efterföljande körningar.

  • Flaggan --untracked-files=no eller status.showUntrackedFiles=no konfiguration (se ovan för båda): indikerar att git status inte ska rapportera ospårade filer. Detta är det snabbaste alternativet. git status kommer inte att lista de ospårade filerna, så du måste vara noga med att komma ihåg om du skapar några nya filer och manuellt git add dem.

  • advice.statusUoption=false (see git-config[1]): om man ställer in variabeln till false inaktiveras varningsmeddelandet som visas när det tar mer än 2 sekunder att räkna upp ospårade filer. I ett stort projekt kan det ta längre tid och användaren kanske redan har accepterat kompromissen (t.ex. att använda -uno kanske inte är ett acceptabelt alternativ för användaren), i vilket fall det inte finns någon anledning att utfärda varningsmeddelandet, och i sådant fall kan det vara bäst att inaktivera varningen.

  • core.untrackedCache=true (see git-update-index[1]): aktivera funktionen för ospårad cache och sök endast i kataloger som har ändrats sedan föregående git status-kommando. Git kommer ihåg uppsättningen ospårade filer i varje katalog och antar att om en katalog inte har ändrats, så har uppsättningen ospårade filer i den inte ändrats. Detta är mycket snabbare än att räkna upp innehållet i varje katalog, men fortfarande inte utan kostnad, eftersom Git fortfarande måste söka efter uppsättningen modifierade kataloger. Den ospårade cachen lagras i .git/index-filen. Den minskade kostnaden för att söka efter ospårade filer uppvägs något av den ökade storleken på indexet och kostnaden för att hålla det uppdaterat. Den minskade söktiden är vanligtvis värd den extra storleken.

  • core.untrackedCache=true och core.fsmonitor=true eller core.fsmonitor=<hook-command-pathname> (se git-update-index[1]): aktiverar både den ospårade cachen och FSMonitor-funktionerna och sök endast i kataloger som har ändrats sedan föregående git status-kommando. Detta är snabbare än att bara använda den ospårade cachen eftersom Git också kan undvika att söka efter ändrade kataloger. Git behöver bara räkna upp den exakta uppsättningen kataloger som nyligen har ändrats. Även om FSMonitor-funktionen kan aktiveras utan den ospårade cachen, minskas fördelarna kraftigt i så fall.

Observera att efter att du har aktiverat den ospårade cachen och/eller FSMonitor-funktionerna kan det ta några git status-kommandon för de olika cachen att värmas upp innan du ser förbättrade kommandotider. Detta är normalt.

SE ÄVEN

GIT

En del av git[1]-sviten