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 → 2.54.0 no changes
-
2.52.0
2025-11-17
- 2.45.4 → 2.51.2 no changes
-
2.45.3
2024-11-26
- 2.43.1 → 2.45.2 no changes
-
2.43.0
2023-11-20
- 2.38.1 → 2.42.4 no changes
-
2.38.0
2022-10-02
- 2.36.1 → 2.37.7 no changes
-
2.36.0
2022-04-18
- 2.30.2 → 2.35.8 no changes
-
2.30.1
2021-02-08
- 2.25.2 → 2.30.0 no changes
-
2.25.1
2020-02-17
-
2.25.0
2020-01-13
- 2.19.1 → 2.24.4 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
2019-12-06
-
2.14.6
2019-12-06
-
2.13.7
2018-05-22
- 2.10.5 → 2.12.5 no changes
-
2.9.5
2017-07-30
-
2.8.6
2017-07-30
- 2.7.6 no changes
-
2.6.7
2017-05-05
-
2.5.6
2017-05-05
- 2.4.12 no changes
-
2.3.10
2015-09-28
-
2.2.3
2015-09-04
-
2.1.4
2014-12-17
-
2.0.5
2014-12-17
SYNOPSIS
git update-index [--add] [--remove | --force-remove] [--replace] [--refresh] [-q] [--unmerged] [--ignore-missing] [(--cacheinfo <mode>,<object>,<file>)…] [--chmod=(+|-)x] [--[no-]assume-unchanged] [--[no-]skip-worktree] [--[no-]ignore-skip-worktree-entries] [--[no-]fsmonitor-valid] [--ignore-submodules] [--[no-]split-index] [--[no-|test-|force-]untracked-cache] [--[no-]fsmonitor] [--really-refresh] [--unresolve] [--again | -g] [--info-only] [--index-info] [-z] [--stdin] [--index-version <n>] [--show-index-version] [--verbose] [--] [<fil>…]
BESKRIVNING
Ändrar indexet. Varje nämnd fil uppdateras i indexet och alla tillstånd som ej sammanslagen eller behöver uppdateras rensas bort.
Se även git-add[1] för ett mer användarvänligt sätt att utföra några av de vanligaste operationerna på indexet.
Hur git update-index hanterar filer som det får information om kan ändras med olika alternativ:
ALTERNATIV
- --add
-
Om en angiven fil inte redan finns i indexet läggs den till. Standardbeteendet är att ignorera nya filer.
- --remove
-
Om en angiven fil finns i indexet men saknas tas den bort. Standardbeteendet är att ignorera borttagna filer.
- --refresh
-
Undersöker det aktuella indexet och kontrollerar via stat()-information om sammanslagningar eller uppdateringar behövs.
- -q
-
Tyst läge. Om --refresh upptäcker att indexet behöver uppdateras är standardbeteendet att ge fel. Detta alternativ gör att git update-index fortsätter ändå.
- --ignore-submodules
-
Försök inte uppdatera undermoduler. Detta alternativ respekteras bara när det anges före --refresh.
- --unmerged
-
Om --refresh hittar ej sammanfogade ändringar i indexet är standardbeteendet att ge fel. Detta alternativ gör att git update-index fortsätter ändå.
- --ignore-missing
-
Ignorerar saknade filer under en --refresh
- --cacheinfo <läge>,<objekt>,<sökväg>
- --cacheinfo <läge> <objekt> <sökväg>
-
Infoga den angivna informationen direkt i indexet. För bakåtkompatibilitet kan du också ange dessa tre argument som tre separata parametrar, men nya användare uppmuntras att använda formen med en parameter.
- --index-info
-
Läs indexinformation från standardindata.
- --chmod=(+|-)x
-
Sätt exekveringsbehörighet på de uppdaterade filerna.
- --assume-unchanged
- --no-assume-unchanged
-
När denna flagga anges uppdateras inte objektnamnen som registrerats för sökvägarna. I stället sätter/avmarkerar detta alternativ biten "assume unchanged" för sökvägarna. När biten "assume unchanged" är satt lovar användaren att inte ändra filen och låter Git anta att filen i arbetsträdet matchar vad som finns registrerat i indexet. Om du vill ändra filen i arbetsträdet måste du ta bort biten för att tala om det för Git. Detta kan ibland vara hjälpsamt när man arbetar med ett stort projekt på ett filsystem med mycket långsamt systemanrop lstat(2) (t.ex. cifs).
Git misslyckas (kontrollerat) om det behöver ändra denna fil i indexet, t.ex. vid sammanslagning av en incheckning. Om den antaget-oförändrade filen ändras uppströms behöver du därför hantera situationen manuellt.
- --really-refresh
-
Som
--refresh, men kontrollerar stat-information utan villkor, utan hänsyn till inställningen "assume unchanged". - --skip-worktree
- --no-skip-worktree
-
När någon av dessa flaggor anges uppdateras inte objektnamnen som registrerats för sökvägarna. I stället sätter och avmarkerar dessa alternativ biten "skip-worktree" för sökvägarna. Se avsnittet "Skip-worktree bit" nedan för mer information.
- --ignore-skip-worktree-entries
- --no-ignore-skip-worktree-entries
-
Ta inte bort poster med skip-worktree (aka "index-only"), även när alternativet
--removeanges. - --fsmonitor-valid
- --no-fsmonitor-valid
-
När någon av dessa flaggor anges uppdateras inte objektnamnen som registrerats för sökvägarna. I stället sätter och avmarkerar dessa alternativ biten "fsmonitor valid" för sökvägarna. Se avsnittet "File System Monitor" nedan för mer information.
- -g
- --again
-
Kör git update-index på de sökvägar vars indexposter skiljer sig från motsvarande i
HEAD-incheckningen. - --unresolve
-
Återställer tillståndet ej sammanslagen eller behöver uppdateras för en fil under en sammanslagning om det rensades av misstag.
- --info-only
-
Skapa inte objekt i objektdatabasen för alla argument <file> som följer efter denna flagga; infoga bara deras objekt-id i indexet.
- --force-remove
-
Ta bort filen från indexet även när arbetskatalogen fortfarande har en sådan fil. (Innebär --remove.)
- --replace
-
Som standard när en fil
pathfinns i indexet vägrar git update-index ett försök att lägga tillpath/file. På samma sätt kan filenpathinte läggas till ompath/filefinns. Med flaggan--replacetas befintliga poster som står i konflikt med posten som läggs till bort automatiskt med varningsmeddelanden. - --stdin
-
I stället för att hämta en lista med sökvägar från kommandoraden, läs en lista med sökvägar från standardinmatningen. Sökvägar separeras som standard med LF (dvs. en sökväg per rad).
- --verbose
-
Rapportera vad som läggs till och tas bort från indexet.
- --index-version <n>
-
Skriv ut det resulterande indexet i den angivna filformatversionen på disk. Version 2, 3 och 4 stöds. Nuvarande standardversion är 2 eller 3, beroende på om extra funktioner används, som
gitadd-N. Med--verboserapporteras även vilken version indexfilen använder före och efter detta kommando.Version 4 utför en enkel komprimering av sökvägsnamn som minskar indexstorleken med 30%-50% i stora kodförråd, vilket ger snabbare inläsningstid. Git har stött detta sedan version 1.8.0, släppt i oktober 2012, och stöd lades till i libgit2 2016 samt i JGit 2020. Äldre versioner av denna manualsida kallade det "relatively young", men det bör i dag betraktas som mogen teknik.
- --show-index-version
-
Rapportera vilken indexformatversion som används av indexfilen på disk. Se
--index-versionovan. - -z
-
Endast meningsfullt med
--stdineller--index-info; sökvägar separeras med NUL-tecken i stället för LF. - --split-index
- --no-split-index
-
Aktivera eller inaktivera delat indexläge. Om delat indexläge redan är aktiverat och
--split-indexanges igen, skickas alla ändringar i $GIT_DIR/index tillbaka till den delade indexfilen.Dessa alternativ gäller oavsett värdet i konfigurationsvariabeln
core.splitIndex(se git-config[1]). En varning ges dock om ändringen går emot det konfigurerade värdet, eftersom det konfigurerade värdet träder i kraft nästa gång indexet läses och då tar bort den avsedda effekten av alternativet. - --untracked-cache
- --no-untracked-cache
-
Aktivera eller inaktivera funktionen för ospårad cache. Använd gärna
--test-untracked-cacheinnan du aktiverar den.Dessa alternativ gäller oavsett värdet i konfigurationsvariabeln
core.untrackedCache(se git-config[1]). En varning ges dock om ändringen går emot det konfigurerade värdet, eftersom det konfigurerade värdet träder i kraft nästa gång indexet läses och då tar bort den avsedda effekten av alternativet. - --test-untracked-cache
-
Utför endast tester på arbetskatalogen för att säkerställa att ospårad cache kan användas. Om du faktiskt vill använda den måste du därefter aktivera ospårad cache manuellt med
--untracked-cache,--force-untracked-cacheeller konfigurationsvariabelncore.untrackedCache. Om ett test misslyckas blir slutkoden 1 och ett meddelande förklarar vad som inte fungerar som det ska; annars blir slutkoden 0 och OK skrivs ut. - --force-untracked-cache
-
Samma som
--untracked-cache. Tillhandahålls för bakåtkompatibilitet med äldre Git-versioner där--untracked-cachebrukade innebära--test-untracked-cache, medan detta alternativ aktiverade utökningen utan villkor. - --fsmonitor
- --no-fsmonitor
-
Aktivera eller inaktivera funktionen för filsystemövervakning. Dessa alternativ gäller oavsett värdet i konfigurationsvariabeln
core.fsmonitor(se git-config[1]). En varning ges dock om ändringen går emot det konfigurerade värdet, eftersom det konfigurerade värdet träder i kraft nästa gång indexet läses och då tar bort den avsedda effekten av alternativet. - --
-
Tolka inte fler argument som alternativ.
- <fil>
-
Filer att arbeta med. Observera att filer som börjar med . kastas bort. Detta inkluderar
./fileochdir/./file. Om du inte vill det, använd renare namn. Detsamma gäller kataloger som slutar med / och sökvägar med //.
ANVÄNDA --REFRESH
--refresh beräknar inte någon ny sha1-fil och uppdaterar inte indexet för läges-/innehållsändringar. Men det gör att stat-informationen för en fil "matchas om" mot indexet, så att du kan uppdatera indexet för en fil som inte ändrats men där stat-posten är inaktuell.
Till exempel kan du vilja göra detta efter en git read-tree, för att koppla stat-indexdetaljerna till rätt filer.
ANVÄNDA --CACHEINFO ELLER --INFO-ONLY
--cacheinfo används för att registrera en fil som inte finns i den aktuella arbetskatalogen. Detta är användbart för sammanslagning med minsta möjliga utcheckning.
För att låtsas att du har en fil på en sökväg med visst läge och sha1, skriv:
$ git update-index --add --cacheinfo <läge>,<sha1>,<sökväg>
--info-only används för att registrera filer utan att lägga dem i objektdatabasen. Detta är användbart för kodförråd som bara används för status.
Både --cacheinfo och --info-only beter sig likartat: indexet uppdateras men inte objektdatabasen. --cacheinfo är användbart när objektet finns i databasen men filen inte är tillgänglig lokalt. --info-only är användbart när filen är tillgänglig men du inte vill uppdatera objektdatabasen.
ANVÄNDA --INDEX-INFO
--index-info är en kraftfullare mekanism som låter dig mata in flera postdefinitioner från standardindata, särskilt avsedd för skript. Den kan ta indata i tre format:
-
läge SP typ SP sha1 TAB sökväg
Formatet används för att mata in utdata från
gitls-treei indexet. -
läge SP sha1 SP steg TAB sökväg
Formatet används för att lägga in steg av högre ordning i indexfilen och matchar utdata från git ls-files --stage.
-
läge SP sha1 TAB sökväg
Formatet produceras inte längre av något Git-kommando, men stöds och kommer fortsatt att stödjas av
update-index--index-info.
För att lägga in en post med högre steg i indexet bör sökvägen först tas bort genom att mata in en post med mode=0 för sökvägen, och därefter mata in nödvändiga rader i det tredje formatet.
Till exempel med detta index som utgångspunkt:
$ git ls-files -s 100644 8a1218a1024a212bb3db30becd860315f9f3ac52 0 frotz
du kan mata in följande till --index-info:
$ git update-index --index-info 0 0000000000000000000000000000000000000000 frotz 100644 8a1218a1024a212bb3db30becd860315f9f3ac52 1 frotz 100755 8a1218a1024a212bb3db30becd860315f9f3ac52 2 frotz
Den första raden i indatan matar in 0 som läge för att ta bort sökvägen; SHA-1 spelar ingen roll så länge den är korrekt formaterad. Därefter matar den andra och tredje raden in steg 1- och steg 2-poster för sökvägen. Efter ovanstående får vi detta:
$ git ls-files -s 100644 8a1218a1024a212bb3db30becd860315f9f3ac52 1 frotz 100755 8a1218a1024a212bb3db30becd860315f9f3ac52 2 frotz
ANVÄNDA BITEN “ASSUME UNCHANGED”
Många operationer i Git är beroende av att ditt filsystem har en effektiv implementation av lstat(2), så att st_mtime-information för filer i arbetsträdet kan kontrolleras billigt för att se om filinnehållet har ändrats jämfört med versionen registrerad i indexfilen. Tyvärr har vissa filsystem ineffektiv lstat(2). Om ditt filsystem är ett av dem kan du sätta biten "assume unchanged" på sökvägar du inte har ändrat, så att Git inte gör denna kontroll. Observera att att sätta denna bit på en sökväg inte betyder att Git kontrollerar filinnehållet för att se om det ändrats — det gör att Git utelämnar all kontroll och antar att det inte har ändrats. När du gör ändringar i filer i arbetsträdet måste du uttryckligen tala om det för Git genom att ta bort biten "assume unchanged", antingen före eller efter att du ändrat dem.
För att sätta biten "assume unchanged", använd alternativet --assume-unchanged. För att avmarkera den, använd --no-assume-unchanged. För att se vilka filer som har biten "assume unchanged" satt, använd git ls-files -v (se git-ls-files[1]).
Kommandot läser konfigurationsvariabeln core.ignorestat. När den är sann markeras sökvägar som uppdaterats med git update-index paths... och sökvägar som uppdaterats med andra Git-kommandon som uppdaterar både index och arbetsträd (t.ex. git apply --index, git checkout-index -u och git read-tree -u) automatiskt som "assume unchanged". Observera att biten "assume unchanged" inte sätts om git update-index --refresh finner att filen i arbetsträdet matchar indexet (använd git update-index --really-refresh om du vill markera dem som "assume unchanged").
Ibland förväxlar användare biten assume-unchanged med biten skip-worktree. Se sista stycket i avsnittet "Skip-worktree bit" nedan för en förklaring av skillnaderna.
EXEMPEL
För att uppdatera och uppfriska endast de filer som redan är utcheckade:
$ git checkout-index -n -f -a && git update-index --ignore-missing --refresh
- På ett ineffektivt filsystem med
core.ignorestatsatt -
$ git update-index --really-refresh (1) $ git update-index --no-assume-unchanged foo.c (2) $ git diff --name-only (3) $ edit foo.c $ git diff --name-only (4) M foo.c $ git update-index foo.c (5) $ git diff --name-only (6) $ edit foo.c $ git diff --name-only (7) $ git update-index --no-assume-unchanged foo.c (8) $ git diff --name-only (9) M foo.c
-
tvingar lstat(2) att sätta bitar för "assume unchanged" på sökvägar som matchar indexet.
-
markera sökvägen som ska redigeras.
-
detta kör lstat(2) och finner att indexet matchar sökvägen.
-
detta kör lstat(2) och finner att indexet inte matchar sökvägen.
-
att registrera den nya versionen i indexet sätter biten "assume unchanged".
-
och den antas vara oförändrad.
-
även efter att du redigerat den.
-
du kan tala om ändringen i efterhand.
-
nu kontrollerar den med lstat(2) och finner att den har ändrats.
-
SKIP-WORKTREE-BITEN
Skip-worktree-biten kan definieras i en (lång) mening: säg åt git att undvika att skriva filen till arbetskatalogen när det rimligen går, och behandla filen som oförändrad när den inte finns i arbetskatalogen.
Observera att inte alla git-kommandon tar hänsyn till denna bit, och vissa stöder den bara delvis.
Flaggorna i update-index och read-tree-funktionerna relaterade till skip-worktree-biten fanns före introduktionen av kommandot git-sparse-checkout[1], som ger ett mycket enklare sätt att konfigurera och hantera skip-worktree-bitarna. Om du vill begränsa arbetsträdet till att bara hantera en delmängd av filerna i kodförrådet rekommenderar vi starkt att använda git-sparse-checkout[1] i stället för lågnivåprimitiver som update-index och read-tree erbjuder.
Huvudsyftet med skip-worktree-biten är att möjliggöra glesa utcheckningar, d.v.s. arbetskataloger där bara en delmängd av sökvägarna finns. När skip-worktree-biten är satt kommer Git-kommandon (som switch, pull, merge) att undvika att skriva dessa filer. Dessa kommandon kommer dock ibland ändå att skriva filerna i viktiga fall, som konflikter under sammanslagning eller ombasering. Git-kommandon undviker också att tolka frånvaron av sådana filer som avsiktlig radering; till exempel kommer git add -u inte att köa en radering för dessa filer och git commit -a kommer inte heller att skapa en incheckning som raderar dem.
Även om denna bit liknar biten assume-unchanged är syftet annorlunda. Assume-unchanged-biten används för att lämna filen i arbetsträdet men låta Git utelämna kontroller av ändringar och anta att filen inte ändrats (även om Git, om det kan avgöra utan att stat:a filen att den har ändrats, kan registrera ändringarna). skip-worktree säger åt Git att ignorera filens frånvaro, undvika att uppdatera den när det är möjligt med kommandon som normalt uppdaterar stora delar av arbetskatalogen (t.ex. checkout, switch, pull, osv.), och att inte registrera frånvaron i incheckningar. Observera att i glesa utcheckningar (uppsatta med git sparse-checkout eller genom att sätta core.sparseCheckout till true) kommer Git att rensa skip-worktree-biten för en fil om filen är markerad som skip-worktree i indexet men hittas i arbetsträdet.
DELAT INDEX
Läget är utformat för kodförråd med mycket stora index och syftar till att minska tiden det tar att upprepade gånger skriva dessa index.
I detta läge delas indexet upp i två filer, $GIT_DIR/index och $GIT_DIR/sharedindex.<SHA-1>. Ändringar samlas i $GIT_DIR/index, det delade indexet, medan den delade indexfilen innehåller alla indexposter och förblir oförändrad.
Alla ändringar i det delade indexet förs tillbaka till den delade indexfilen när antalet poster i det delade indexet når en nivå som anges av konfigurationsvariabeln splitIndex.maxPercentChange (se git-config[1]).
Varje gång en ny delad indexfil skapas tas gamla delade indexfiler bort om deras ändringstid är äldre än vad som anges av konfigurationsvariabeln splitIndex.sharedIndexExpire (se git-config[1]).
För att undvika att ta bort en delad indexfil som fortfarande används uppdateras dess ändringstid till aktuell tid varje gång ett nytt delat index baserat på den delade indexfilen skapas eller läses.
OSPÅRAD CACHE
Denna cache är avsedd att snabba upp kommandon som behöver fastställa ospårade filer, som git status.
Funktionen fungerar genom att registrera mtime för katalogerna i arbetsträdet och sedan utelämna katalogläsning och stat-anrop mot filer i kataloger vars mtime inte har ändrats. För att detta ska fungera måste det underliggande operativsystemet och filsystemet ändra fältet st_mtime för kataloger när filer i katalogen läggs till, ändras eller tas bort.
Du kan testa om filsystemet stöder detta med alternativet --test-untracked-cache. Alternativet --untracked-cache brukade implicit utföra testet i äldre Git-versioner, men så är det inte längre.
Om du vill aktivera (eller inaktivera) funktionen är det enklare att använda konfigurationsvariabeln core.untrackedCache (se git-config[1]) än att använda alternativet --untracked-cache till git update-index i varje kodförråd, särskilt om du vill göra det för alla kodförråd du använder. Du kan sätta konfigurationsvariabeln till true (eller false) i $HOME/.gitconfig en enda gång och få den att påverka alla kodförråd du arbetar med.
När konfigurationsvariabeln core.untrackedCache ändras läggs ospårad cache till i eller tas bort från indexet nästa gång ett kommando läser indexet. När --[no-|force-]untracked-cache används läggs ospårad cache däremot till eller tas bort från indexet omedelbart.
Före 2.17 hade den ospårade cachen ett programfel där ersättning av en katalog med en symbolisk länk till en annan katalog kunde göra att filer som spåras av git felaktigt visades som ospårade. Se incheckningen "status: add a failing test showing a core.untrackedCache bug" i git.git. En tillfällig lösning för detta är (och den kan även fungera för andra ännu oupptäckta programfel i framtiden):
$ git -c core.untrackedCache=false status
Denna programfel har också visat sig påverka fall utan symboliska länkar där en katalog ersätts med en fil, när det gäller de interna strukturerna i den ospårade cachen. Men inget fall har rapporterats där detta gav felaktig utdata från "git status".
Det finns också fall där befintliga index skrivna av git-versioner före 2.17 refererar till kataloger som inte längre finns, vilket kan orsaka många varningar av typen "could not open directory" vid "git status". Detta är nya varningar för befintliga problem som tidigare tyst ignorerades.
Precis som med programfelet ovan är lösningen att köra en engångs-"git status" med core.untrackedCache=false för att rensa ut kvarvarande felaktig data.
FILSYSTEMÖVERVAKNING
Den här funktionen är avsedd att snabba upp git-operationer för kodförråd med stora arbetskataloger.
Det gör att git kan samarbeta med en filsystemövervakare (se git-fsmonitor--daemon[1] och avsnittet "fsmonitor-watchman" i githooks[5]) som kan informera om vilka filer som har ändrats. Detta gör att git kan undvika att behöva köra lstat() på varje fil för att hitta ändrade filer.
När den används tillsammans med ospårad cache kan prestandan förbättras ytterligare genom att undvika kostnaden för att skanna hela arbetskatalogen efter nya filer.
Om du vill aktivera (eller inaktivera) funktionen är det enklare att använda konfigurationsvariabeln core.fsmonitor (se git-config[1]) än att använda alternativet --fsmonitor till git update-index i varje kodförråd, särskilt om du vill göra det för alla kodförråd du använder. Du kan sätta konfigurationsvariabeln i $HOME/.gitconfig en enda gång och få den att påverka alla kodförråd du arbetar med.
När konfigurationsvariabeln core.fsmonitor ändras läggs filsystemövervakningen till i eller tas bort från indexet nästa gång ett kommando läser indexet. När --[no-]fsmonitor används läggs filsystemövervakningen däremot till eller tas bort från indexet omedelbart.
KONFIGURATION
Kommandot respekterar konfigurationsvariabeln core.filemode. Om kodförrådet ligger på ett filsystem vars exekveringsbitar är opålitliga bör detta sättas till false (se git-config[1]). Då ignorerar kommandot skillnader i fillägen mellan indexet och filsystemet om de bara skiljer i exekveringsbit. På ett sådant olyckligt filsystem kan du behöva använda git update-index --chmod=.
På liknande sätt, om konfigurationsvariabeln core.symlinks är satt till false (se git-config[1]), checkas symboliska länkar ut som vanliga filer, och detta kommando ändrar då inte ett registrerat filläge från symbolisk länk till vanlig fil.
Kommandot läser konfigurationsvariabeln core.ignorestat. Se avsnittet "Using "assume unchanged" bit" ovan.
Kommandot läser också konfigurationsvariabeln core.trustctime. Detta kan vara användbart när inodens ändringstid regelbundet ändras av något utanför Git (filsystemsindexerare och backup-system använder ctime för att markera bearbetade filer) (se git-config[1]).
Utökningen för ospårad cache kan aktiveras med konfigurationsvariabeln core.untrackedCache (se git-config[1]).
NOTERINGAR
Användare försöker ofta använda bitarna assume-unchanged och skip-worktree för att säga åt Git att ignorera ändringar i spårade filer. Detta fungerar inte som förväntat, eftersom Git ändå kan jämföra filer i arbetsträdet mot indexet vid vissa operationer. I allmänhet erbjuder Git inget sätt att ignorera ändringar i spårade filer, så alternativa lösningar rekommenderas.
Till exempel om filen du vill ändra är någon form av konfigurationsfil, kan kodförrådet innehålla en exempelkonfigurationsfil som sedan kan kopieras till det ignorerade namnet och ändras. Kodförrådet kan till och med innehålla ett skript som behandlar exempelfilen som en mall och ändrar samt kopierar den automatiskt.
GIT
En del av git[1]-sviten