Svenska ▾ Topics ▾ Latest version ▾ git-add last updated in 2.52.0

NAMN

git-add - Lägg till filinnehåll i indexet

SYNOPSIS

git add [--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. dir för att lägga till kat/fil1 och kat/fil2) kan också anges för att uppdatera indexet så att det matchar hela katalogens aktuella tillstånd (t.ex. om du anger kat registreras inte bara en fil kat/fil1 som ändrats i arbetskatalog, en fil kat/fil2 som lagts till i arbetskatalog, utan även en fil kat/fil3 som tagits bort från arbetskatalog). Observera att äldre versioner av Git brukade ignorera borttagna filer; använd alternativet --no-all om 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 git add att 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 delkommandot patch. Se “Interactive mode” för detaljer.

-U<n>
--unified=<n>

Generate diffs with <n> lines of context. Defaults to diff.context or 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.interHunkContext eller 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 git add <sökvägsspec>... var en synonym för git add --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 git diff and committing them with git commit -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.ignoreErrors kan 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 git add när ett inbäddat förvar läggs till i indexet utan att använda git submodule add fö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.autocrlf configuration or the text attribute 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 konfigurationsvariabeln core.quotePath (se git-config[1]). Se även --pathspec-file-nul och 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 katalogen Dokumentation och 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 katalogen Documentation/.

  • Ö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 HEAD och index (dvs. vad som kommer att incheckas om du säger git commit), och mellan index- och arbetskatalogs-filer (dvs. vad du kan köa ytterligare före git commit med git add) 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.c

Den visar att foo.png skiljer sig från HEAD (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.singleKey till true.

diff

Detta låter dig granska vad som kommer bli incheckat (dvs. mellan HEAD och 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 git add ska 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