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.54.0
2026-04-20
- 2.53.0 no changes
-
2.52.0
2025-11-17
- 2.51.1 → 2.51.2 no changes
-
2.51.0
2025-08-18
- 2.48.1 → 2.50.1 no changes
-
2.48.0
2025-01-10
- 2.46.1 → 2.47.3 no changes
- 2.46.0 no changes
- 2.45.1 → 2.45.4 no changes
-
2.45.0
2024-04-29
- 2.43.2 → 2.44.4 no changes
-
2.43.1
2024-02-09
- 2.40.1 → 2.43.0 no changes
-
2.40.0
2023-03-12
- 2.38.1 → 2.39.5 no changes
-
2.38.0
2022-10-02
- 2.37.4 → 2.37.7 no changes
-
2.37.3
2022-08-30
- 2.34.1 → 2.37.2 no changes
-
2.34.0
2021-11-15
- 2.25.1 → 2.33.8 no changes
-
2.25.0
2020-01-13
- 2.22.1 → 2.24.4 no changes
- 2.22.0 no changes
- 2.21.1 → 2.21.4 no changes
-
2.21.0
2019-02-24
- 2.18.1 → 2.20.5 no changes
-
2.18.0
2018-06-21
- 2.17.0 → 2.17.6 no changes
-
2.16.6
2019-12-06
- 2.15.4 no changes
-
2.14.6
2019-12-06
- 2.11.4 → 2.13.7 no changes
-
2.10.5
2017-09-22
- 2.8.6 → 2.9.5 no changes
-
2.7.6
2017-07-30
- 2.5.6 → 2.6.7 no changes
-
2.4.12
2017-05-05
-
2.3.10
2015-09-28
- 2.1.4 → 2.2.3 no changes
-
2.0.5
2014-12-17
SYNOPSIS
gitadd[--verbose|-v] [--dry-run|-n] [--force|-f] [--interactive|-i] [--patch|-p] [--edit|-e] [--[no-]all|-A|--[no-]ignore-removal| [--update|-u]] [--sparse] [--intent-to-add|-N] [--refresh] [--ignore-errors] [--ignore-missing] [--renormalize] [--chmod=(+|-)x] [--pathspec-from-file=<fil> [--pathspec-file-nul]] [--] [<sökvägsmönster>…]
BESKRIVNING
Lägg till innehållet i nya eller ändrade filer i indexet. "Indexet" (även känt som "uppställningsområdet") är det du använder för att förbereda innehållet i nästa incheckning.
När du kör git commit utan några andra argument, kommer den bara att genomföra köade ändringar. Om du till exempel har redigerat fil.c och vill checka in dina ändringar i den filen kan du köra:
git add fil.c git commit
Du kan också lägga till bara en del av dina ändringar i en fil med git add -p.
Kommandot kan utföras flera gånger före en incheckning. Det lägger bara till innehållet i den/de angivna filen/filerna när add-kommandot körs. Om du vill att efterföljande ändringar ska inkluderas i nästa incheckning måste du köra git add igen för att lägga till det nya innehållet i indexet.
Kommandot git status kan användas för att få en sammanfattning av vilka filer som har ändringar som är köade för nästa incheckning.
Kommandot git add lägger inte till ignorerade filer som standard. Du kan använda alternativet --force för att lägga till ignorerade filer. Om du anger det exakta filnamnet på en ignorerad fil kommer git add att misslyckas med en lista över ignorerade filer. Annars kommer filen att ignoreras i tysthet.
Se git-commit[1] för alternativa sätt att lägga till innehåll i en incheckning.
ALTERNATIV
- <sökvägsmönster>...
-
Filer att lägga till innehåll från. Filglobs (t.ex.
*.c) kan anges för att lägga till alla matchande filer. Ett inledande katalognamn (t.ex.dirför att lägga tillkat/fil1ochkat/fil2) kan också anges för att uppdatera indexet så att det matchar hela katalogens aktuella tillstånd (t.ex. om du angerkatregistreras inte bara en filkat/fil1som ändrats i arbetsträd, en filkat/fil2som lagts till i arbetsträd, utan även en filkat/fil3som tagits bort från arbetsträd). Observera att äldre versioner av Git brukade ignorera borttagna filer; använd alternativet--no-allom du vill lägga till ändrade eller nya filer men ignorera borttagna.För mer information om syntaxen <sökvägsmönster>, se posten sökvägsmönster i gitglossary[7].
-
-n -
--dry-run -
Lägg inte till filen/filerna, visa bara om de finns och/eller kommer att ignoreras.
-
-v -
--verbose -
Var utförlig.
-
-f -
--force -
Allow adding otherwise ignored files. The option is also used when
submodule.<name>.ignore=allis set, but you want to stage an update of the submodule. Thepathto the submodule must be explicitly specified. -
--sparse -
Tillåt uppdatering av indexposter utanför gles-checkout-konen. Normalt vägrar
gitaddatt uppdatera indexposter vars sökvägar inte passar inom gles-checkout-konen, eftersom dessa filer kan tas bort från arbetsträd utan förvarning. Se git-sparse-checkout[1] för mer information. -
-i -
--interactive -
Lägg till ändrat innehåll i arbetsträd interaktivt till indexet. Valfria sökvägsargument kan anges för att begränsa åtgärden till en delmängd av arbetsträd. Se "Interaktivt läge" för mer information.
-
-p -
--patch -
Välj interaktivt bitar av patch mellan indexet och arbetsträdet och lägg till dem i indexet. Detta ger användaren en chans att granska skillnaden innan modifierat innehåll läggs till i indexet.
Det kör i praktiken
add--interactive, men kringgår den initiala kommandomenyn och hoppar direkt till delkommandotpatch. Se “Interactive mode” för detaljer. -
-U<n> -
--unified=<n> -
Generate diffs with <n> lines of context. The number of context lines defaults to
diff.contextor 3 if the configuration variable is unset. (-Uwithout <n> is silently accepted as a synonym for-pdue to a historical accident). -
--inter-hunk-context=<n> -
Visar sammanhanget mellan olika stycken, upp till det angivna <antal> rader, och sammanfogar därmed stycken som ligger nära varandra. Standardvärdet är
diff.interHunkContexteller 0 om konfigurationsalternativet inte är inställt.
-
-e -
--edit -
Öppna skillnaden mellan diffen och indexet i en redigerare och låt användaren redigera den. När redigeraren har stängts, justera hunk-rubrikerna och tillämpa patchen på indexet.
Avsikten med det här alternativet är att välja och vraka rader i patchen som ska tillämpas, eller till och med att modifiera innehållet i rader som ska köas. Detta kan vara snabbare och mer flexibelt än att använda den interaktiva styckes-väljaren. Det är dock lätt att förvirra sig själv och skapa en patch som inte gäller för indexet. Se REDIGERA PATCHAR nedan.
-
-u -
--update -
Uppdatera indexet där det redan har en post som matchar <sökvägsmönster>. Detta tar bort och modifierar indexposter så att de matchar arbetsträd, men lägger inte till några nya filer.
Om ingen <sökvägsmönster> anges när
-u-alternativet används, uppdateras alla spårade filer i hela arbetsträd (gamla versioner av Git användes för att begränsa uppdateringen till den aktuella katalogen och dess underkataloger). -
-A -
--all -
--no-ignore-removal -
Uppdatera indexet inte bara där arbetsträd har en fil som matchar <sökvägsmönster> utan även där indexet redan har en post. Detta lägger till, ändrar och tar bort indexposter så att de matchar arbetsträd.
Om ingen <sökvägsmönster> anges när
-A-alternativet används, uppdateras alla filer i hela arbetsträdet (gamla versioner av Git användes för att begränsa uppdateringen till den aktuella katalogen och dess underkataloger). -
--no-all -
--ignore-removal -
Uppdatera indexet genom att lägga till nya filer som är okända för indexet och filer som ändrats i arbetsträdet, men ignorera filer som har tagits bort från arbetsträdet. Alternativet är verkningslöst när ingen <sökvägsmönster> används.
Alternativet är främst till för att hjälpa användare som är vana vid äldre versioner av Git, vars
gitadd<sökvägsmönster>... var en synonym förgitadd--no-all<sökvägsmönster>..., d.v.s. ignorerade borttagna filer. -
-N -
--intent-to-add -
Registrera endast det faktum att sökvägen kommer att läggas till senare. En post för sökvägen placeras i indexet utan innehåll. Detta är användbart för att bland annat visa det ej köat innehåll i sådana filer med
gitdiffoch incheckning dem medgitcommit-a. -
--refresh -
Lägg inte till filen/filerna, utan uppdatera bara deras stat()-information i indexet.
-
--ignore-errors -
Om vissa filer inte kunde läggas till på grund av fel vid indexeringen av dem, avbryt inte åtgärden, utan fortsätt att lägga till de andra. Kommandot ska fortfarande avslutas med status som inte är noll. Konfigurationsvariabeln
add.ignoreErrorskan sättas till true för att göra detta till standardbeteendet. -
--ignore-missing -
Alternativet kan bara användas tillsammans med
--dry-run. Genom att använda det här alternativet kan användaren kontrollera om någon av de givna filerna ska ignoreras, oavsett om de redan finns i arbetsträdet eller inte. -
--no-warn-embedded-repo -
Som standard varnar
gitaddnär ett inbäddat kodförråd läggs till i indexet utan att användagitsubmoduleaddför att skapa en post i.gitmodules. Alternativet undertrycker varningen (t.ex. om du manuellt utför operationer på undermoduler). -
--renormalize -
Använd "clean"-processen på nytt på alla spårade filer för att tvångsmässigt lägga till dem i indexet igen. Detta är användbart efter att ha ändrat konfigurationen av
core.autocrlfeller attributettextför att korrigera filer som lagts till med felaktiga CRLF/LF-radslut. Detta alternativ innebär-u. Ensamma CR-tecken är orörda, så medan en CRLF rensas till LF, rensas en CRCRLF-sekvens bara delvis till CRLF. -
--chmod=(+|-)x -
Åsidosätt den körbara biten för de tillagda filerna. Den körbara biten ändras bara i indexet, filerna på disken lämnas oförändrade.
-
--pathspec-from-file=<fil> -
Sökvägsmönster skickas i <fil> i stället för kommandoradsargument. Om <fil> är exakt
-används standardindata. Sökvägsmönster separeras med LF eller CR/LF. Sökvägsmönster kan citeras enligt beskrivningen för konfigurationsvariabelncore.quotePath(se git-config[1]). Se även--pathspec-file-nuloch globala--literal-pathspecs. -
--pathspec-file-nul -
Endast meningsfullt med
--pathspec-from-file. Sökvägsmönsterposter separeras med tecknet NUL och alla andra tecken tolkas bokstavligt (inklusive radbrytningar och citattecken). -
-- -
Det här alternativet kan användas för att separera kommandoradsalternativ från fillistan (användbart när filnamn kan misstas för kommandoradsalternativ).
EXEMPEL
-
Lägger till innehåll från alla
*.txt-filer under katalogenDokumentationoch dess underkataloger:$ git add Documentation/\*.txt
Observera att asterisken
*är ett citat från skalet i det här exemplet; detta låter kommandot inkludera filerna från underkataloger till katalogenDocumentation/. -
Överväger att lägga till innehåll från alla
git-*.sh-skript:$ git add git-*.sh
Eftersom det här exemplet låter skalet expandera asterisken (d.v.s. du listar filerna explicit), tar det inte hänsyn till
subdir/git-foo.sh.
INTERAKTIVT LÄGE
När kommandot går in i interaktivt läge visar det utdata från delkommandot status och går sedan in i sin interaktiva kommandoslinga.
Kommandoslingan visar listan över tillgängliga delkommandon och ger en prompt "Vad nu>". Generellt sett, när prompten avslutas med ett enda >, kan du bara välja ett av de givna alternativen och skriva return, så här:
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> 1
Du kan också säga s eller sta eller status ovan så länge valet är unikt.
Huvudkommandoslingan har 6 underkommandon (plus help och quit).
- status
-
Det visar förändringen mellan
HEADoch index (d.v.s. vad som kommer att incheckas om du sägergitcommit), och mellan index- och arbetsträds-filer (d.v.s. vad du kan köa ytterligare föregitcommitmedgitadd) för varje sökväg. Ett exempel på utdata ser ut så här:köad ej köad sökväg 1: binär ingenting foo.png 2: +403/-35 +1/-1 add-interactive.cDen visar att
foo.pngskiljer sig frånHEAD(men det är binärt så radantalet kan inte visas) och det finns ingen skillnad mellan den indexerade kopian och arbetsträdversionen (om arbetsträdets version också var annorlunda skulle binär ha visats i stället för ingenting). Den andra filen,add-interactive.c, har 403 rader tillagda och 35 rader borttagna om man sparar det som finns i indexet, men arbetsträdsfilen har ytterligare modifieringar (ett tillägg och en borttagning). - update
-
Det visar statusinformationen och utlöser en fråga om "Uppdatera>>". När frågan avslutas med dubbelt >> kan du göra mer än ett val, sammanfogat med blanktecken eller kommatecken. Du kan också säga intervall. T.ex. "2-5 7,9" för att välja 2, 3, 4, 5, 7, 9 från listan. Om det andra numret i ett intervall utelämnas tas alla återstående fält. T.ex. "7-" för att välja 7, 8, 9 från listan. Du kan säga * för att välja allt.
Det du valt markeras sedan med *, så här:
köad ej köad sökväg 1: binär ingenting foo.png * 2: +403/-35 +1/-1 add-interactive.c
För att ta bort en sektion, skriv in prefixet
-så här:Uppdatera>> -2
Efter att du har gjort valet, svara med en tom rad för att köa innehållet i arbetsträd-filerna för valda sökvägar i indexet.
- ångra
-
Det har ett mycket liknande användargränssnitt som "uppdatera", och den köade informationen för valda sökvägar ångras till den i HEAD-versionen. Om du återställer nya sökvägar spåras de inte längre.
- lägg till ospårad
-
Det har ett mycket liknande gränssnitt som "uppdatera" och "ångra", och låter dig lägga till ospårade sökvägar till indexet.
- patch
-
Det låter dig välja en sökväg från ett "status"-liknande urval. Efter att sökvägen valts visas skillnaden mellan indexet och arbetsträds-filen och du frågas om du vill köa in ändringen för varje stycke. Du kan välja ett av följande alternativ och skriva return:
y - köa stycket n - köa inte stycket q - avsluta; köa inte stycket eller något av de följande a - köa stycket och alla följande i filen d - köa inte stycket eller något av de följande i filen j - gå till nästa obestämda stycke, börja om vid slutet J - gå till nästa stycke, börja om vid slutet k - gå till föregående obestämda stycke, börja om vid början K - gå till föregående styckem, börja om vid början g - välj ett stycke att gå till / - sök efter stycke som motsvarar angivet reguljärt uttryck s - dela aktuellt stycke i mindre styckens e - redigera aktuellt stycke manuellt p - visa aktuellt stycke P - visa aktuellt stycke i bläddrare ? - visa hjälp
Efter att ödet för alla stycken har bestämts, om det finns någon stycke som har valts, uppdateras indexet med de valda styckena.
Du kan slippa skriva return här genom att ställa in konfigurationsvariabeln
interactive.singleKeytilltrue. - diff
-
Det låter dig granska vad som kommer bli incheckat (d.v.s. mellan
HEADoch index).
REDIGERING AV PATCHAR
Om du anropar git add -e eller väljer e från den interaktiva styckes-väljaren öppnas en patch i din redigerare; efter att redigeraren avslutas tillämpas resultatet på indexet. Du kan göra godtyckliga ändringar i patchen, men observera att vissa ändringar kan ge förvirrande resultat, eller till och med resultera i en patch som inte kan tillämpas. Om du vill avbryta operationen helt (d.v.s. inte köa något nytt i indexet), radera helt enkelt alla rader i patchen. Listan nedan beskriver några vanliga saker du kan se i en patch, och vilka redigeringsåtgärder som är lämpliga för dem.
- tillagt innehåll
-
Tillagt innehåll representeras av rader som börjar med "+". Du kan förhindra att köa tilläggsrader genom att ta bort dem.
- borttaget innehåll
-
Borttaget innehåll representeras av rader som börjar med "-". Du kan förhindra köas för borttagning genom att konvertera "-" till ett " " (mellanslag).
- ändrat innehåll
-
Ändrat innehåll representeras av "-" rader (som tar bort det gamla innehållet) följt av "+" rader (som lägger till ersättningsinnehållet). Du kan förhindra att modifieringen köas genom att konvertera "-" rader till " " och ta bort "+" rader. Var uppmärksam på att om du bara ändrar hälften av raderna kan det leda till förvirrande ändringar i indexet.
Det finns också mer komplexa operationer som kan utföras. Men var medveten om att eftersom patchen endast tillämpas på indexet och inte arbetsträdet, kommer arbetsträdet att verka "ångra" ändringen i indexet. Om du till exempel introducerar en ny rad i indexet som varken finns i HEAD eller arbetsträdet, kommer den nya raden att köas för incheckning, men raden kommer att verka ångras i arbetsträdet.
Undvik att använda dessa konstruktioner, eller gör det med extrem försiktighet.
- tar bort orört innehåll
-
Innehåll som inte skiljer sig mellan indexet och arbetsträd kan visas på kontextrader, som börjar med ett " " (mellanslag). Du kan köa kontextrader för borttagning genom att konvertera mellanslaget till ett "-". Den resulterande arbetsträd filen visas för att lägga till innehållet igen.
- modifiera befintligt innehåll
-
Man kan också modifiera kontextrader genom att köa in dem för borttagning (genom att konvertera " " till "-") och lägga till en "+"-rad med det nya innehållet. På liknande sätt kan man modifiera "+"-rader för befintliga tillägg eller modifieringar. I samtliga fall kommer den nya modifieringen att visas ångrad i arbetsträd.
- nytt innehåll
-
Du kan också lägga till nytt innehåll som inte finns i patchen; lägg helt enkelt till nya rader, som alla börjar med "+". Tillägget kommer att visas ångrad i arbetsträdet.
Det finns också flera åtgärder som bör undvikas helt, eftersom de gör det omöjligt att applicera patchen:
-
lägga till kontext ("") eller ta bort ("-") rader
-
ta bort kontext eller rader för borttagning
-
ändra innehållet i kontexten eller rader för borttagning
KONFIGURATION
Allt under den här raden i det här avsnittet är selektivt inkluderat från dokumentationen git-config[1]. Innehållet är detsamma som det som finns där:
-
add.ignoreErrors -
add.ignore-errors(föråldrad) -
Anger att
gitaddska fortsätta lägga till filer när vissa filer inte kan läggas till på grund av indexeringsfel. Motsvarande alternativet--ignore-errors.add.ignore-errorsär föråldrad eftersom den inte följer den vanliga namngivningskonventionen för konfigurationsvariabler.
GIT
En del av git[1]-sviten