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 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ägsspec>…]
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.
Det här 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ägsspec>...
-
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 arbetskatalog, en filkat/fil2som lagts till i arbetskatalog, utan även en filkat/fil3som tagits bort från arbetskatalog). 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.For more details about the <pathspec> syntax, see the pathspec entry in 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 -
Tillåt lägga till annars ignorerade filer.
-
--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 arbetskatalog utan förvarning. Se git-sparse-checkout[1] för mer information. -
-i -
--interactive -
Lägg till ändrat innehåll i arbetskatalog interaktivt till indexet. Valfria sökvägsargument kan anges för att begränsa åtgärden till en delmängd av arbetskatalog. 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.
Detta 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. Defaults to
diff.contextor 3 if the config option is unset. -
--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 editor och låt användaren redigera den. När editorn har stängts, justera hunk-rubrikerna och applicera 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ägsspec>. Detta tar bort och modifierar indexposter så att de matchar arbetskatalog, men lägger inte till några nya filer.
Om ingen <sökvägsspec> anges när
-u-alternativet används, uppdateras alla spårade filer i hela arbetskatalog (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 arbetskatalog har en fil som matchar <sökvägsspec> utan även där indexet redan har en post. Detta lägger till, ändrar och tar bort indexposter så att de matchar arbetskatalog.
Om ingen <sökvägsspec> 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 arbetskatalogen. Det här alternativet fungerar inte när ingen <sökvägsspec> används.
Det här alternativet är främst till för att hjälpa användare som är vana vid äldre versioner av Git, vars
gitadd<sökvägsspec>... var en synonym förgitadd--no-all<sökvägsspec>..., d.v.s. ignorerade borttagna filer. -
-N -
--intent-to-add -
Record only the fact that the path will be added later. An entry for the path is placed in the index with no content. This is useful for, among other things, showing the unstaged content of such files with
gitdiffand committing them withgitcommit-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 -
Det här 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 förvar läggs till i indexet utan att användagitsubmoduleaddför att skapa en post i.gitmodules. Det här alternativet undertrycker varningen (t.ex. om du manuellt utför operationer på undermoduler). -
--renormalize -
Apply the "clean" process freshly to all tracked files to forcibly add them again to the index. This is useful after changing
core.autocrlfconfiguration or thetextattribute in order to correct files added with wrong CRLF/LF line endings. This option implies-u. Lone CR characters are untouched, thus while a CRLF cleans to LF, a CRCRLF sequence is only partially cleaned to 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> -
Pathspec skickas i <fil> istället för kommandoradsargument. Om <fil> är exakt
-används standardindata. Pathspec-element separeras med LF eller CR/LF. Pathspec-element kan citeras enligt beskrivningen för konfigurationsvariabelncore.quotePath(se git-config[1]). Se även--pathspec-file-nuloch global--literal-pathspecs. -
--pathspec-file-nul -
Endast meningsfullt med
--pathspec-from-file. Pathspec-element 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 (dvs. du listar filerna explicit), tar det inte hänsyn till
underkat/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
-
Detta visar förändringen mellan
HEADoch index (dvs. vad som kommer att incheckas om du sägergitcommit), och mellan index- och arbetskatalogs-filer (dvs. 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 arbetskatalog-versionen (om arbetskatalogs-versionen också var annorlunda skulle binär ha visats istä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 arbetskatalogs-filen har ytterligare modifieringar (ett tillägg och en borttagning). - update
-
Detta 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 arbetskatalog-filerna för valda sökvägar i indexet.
- ångra
-
Detta 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
-
Detta 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
-
Detta 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 arbetskatalogs-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
-
Detta låter dig granska vad som kommer bli incheckat (dvs. 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 editor; efter att editorn 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 (dvs. 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 arbetskatalogen att verka "ångra" ändringen i indexet. Om du till exempel introducerar en ny rad i indexet som varken finns i HEAD eller arbetskatalogen, kommer den nya raden att köas för incheckning, men raden kommer att verka ångras i arbetskatalogen.
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 arbetskatalog 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 arbetskatalog 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 arbetskatalog.
- 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 arbetskatalogen.
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