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.53.0
2026-02-02
- 2.45.1 → 2.52.0 no changes
-
2.45.0
2024-04-29
- 2.44.1 → 2.44.4 no changes
-
2.44.0
2024-02-23
- 2.43.1 → 2.43.7 no changes
-
2.43.0
2023-11-20
- 2.40.1 → 2.42.4 no changes
-
2.40.0
2023-03-12
- 2.39.1 → 2.39.5 no changes
-
2.39.0
2022-12-12
- 2.35.1 → 2.38.5 no changes
-
2.35.0
2022-01-24
- 2.34.1 → 2.34.8 no changes
-
2.34.0
2021-11-15
- 2.31.1 → 2.33.8 no changes
-
2.31.0
2021-03-15
- 2.30.2 → 2.30.9 no changes
-
2.30.1
2021-02-08
- 2.24.1 → 2.30.0 no changes
-
2.24.0
2019-11-04
- 2.22.1 → 2.23.4 no changes
-
2.22.0
2019-06-07
- 2.21.1 → 2.21.4 no changes
-
2.21.0
2019-02-24
- 2.19.1 → 2.20.5 no changes
-
2.19.0
2018-09-10
- 2.18.1 → 2.18.5 no changes
-
2.18.0
2018-06-21
- 2.17.1 → 2.17.6 no changes
-
2.17.0
2018-04-02
-
2.16.6
2019-12-06
- 2.15.4 no changes
-
2.14.6
2019-12-06
-
2.13.7
2018-05-22
- 2.12.5 no changes
-
2.11.4
2017-09-22
- 2.7.6 → 2.10.5 no changes
-
2.6.7
2017-05-05
-
2.5.6
2017-05-05
-
2.4.12
2017-05-05
- 2.3.10 no changes
-
2.2.3
2015-09-04
- 2.1.4 no changes
-
2.0.5
2014-12-17
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
gitdiff--cached). Om-vanges två gånger, visa även de ändringar i arbetskatalogen som ännu inte har iscensatts (dvs. som utdata frångitdiff). -
-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-uno).De möjliga alternativen är:
När alternativet
-uinte används visas ospårade filer och kataloger (dvs. samma sak som att angenormal), 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 (segitupdate-index--untracked-cacheochgitupdate-index--split-index). Annars kan du användanoför att fågitstatusatt returnera snabbare utan att visa ospårade filer. Alla vanliga stavningar för det booleskt värdetruetas somnormalochfalsesomno.Standardvärdet kan ändras med hjälp av konfigurationsvariabeln
status.showUntrackedFilessom ä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,dirtyellerall, 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=allanges, 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=v1om inget annat format anges. -
--column[=<alternativ>] -
--no-column -
Visa ospårade filer i kolumner. Se konfigurationsvariabeln
column.statusför syntax för alternativ.--columnoch--no-columnutan alternativ motsvararalwaysrespektivenever. -
--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,
Xvisar statusen för indexet ochYvisar statusen för arbetskatalog. -
När en sammanslagningskonflikt har uppstått och ännu inte har lösts, visas
XochYvisar 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
XochYalltid desamma, eftersom de är okänd för indexet. ?? används för ospårade sökvägar. Ignorerade filer listas inte om inte--ignoredanvä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:
| X | Y | Betydelse |
|---|---|---|
[ |
||
|
|
[ MTD] |
|
|
[ MTD] |
typ ändrad i index |
|
[ MTD] |
|
|
|
borttagen från index |
|
[ MTD] |
omdöpt i index |
|
[ MTD] |
|
[ |
|
|
[ |
M |
arbetskatalog ändrat sedan index |
[ |
T |
typ ändrad i arbetskatalog sedan index |
[ |
D |
|
R |
|
omdöpt i arbetskatalog |
C |
|
|
|
D |
osammanslagna, båda borttagnad |
|
U |
|
|
D |
|
|
A |
|
|
U |
|
|
A |
osammanslagna, båda tillagda |
|
U |
osammanslagna, båda modifierade |
? |
? |
ospårade |
|
! |
Undermoduler har mer tillstånd och rapporterar istället
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:
-
Användarens
color.status-konfiguration respekteras inte; färgen kommer alltid att vara avstängd. -
Användarens konfiguration av
status.relativePathsrespekteras 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 |
|---|---|
|
Aktuell commit. |
# branch.head <gren> | (fristående) |
Aktuell gren. |
|
Om uppströms är satt. |
|
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.
|
<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 |
<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=noellerstatus.showUntrackedFiles=nokonfiguration (se ovan för båda): indikerar attgitstatusinte ska rapportera ospårade filer. Detta är det snabbaste alternativet.gitstatuskommer 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 manuelltgitadddem. -
advice.statusUoption=false(see git-config[1]): om man ställer in variabeln tillfalseinaktiveras 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-unokanske 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åendegitstatus-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=trueochcore.fsmonitor=trueellercore.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åendegitstatus-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.
GIT
En del av git[1]-sviten