Ignorera filändringar med Git
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Git bör inte spåra alla filer i projektet. Temporära filer från utvecklingsmiljön, testutdata och loggar är alla exempel på filer som förmodligen inte behöver spåras.
Du kan använda olika mekanismer för att låta Git veta vilka filer i projektet som inte ska spåras och för att säkerställa att Git inte rapporterar ändringar i filerna. För filer som Git inte spårar kan du använda en .gitignore
eller exclude
-fil. För filer som Git spårar kan du be Git att sluta spåra dem och ignorera ändringar.
I den här artikeln kan du se hur du:
- Ignorera ändringar i ospårade filer med hjälp av en
.gitignore
fil. - Ignorera ändringar i ospårade filer med hjälp av en
exclude
fil. - Sluta spåra en fil och ignorera ändringar med hjälp
git update-index
av kommandot . - Sluta spåra en fil och ignorera ändringar med hjälp
git rm
av kommandot .
Använda en .gitignore-fil
Du kan be Git att inte spåra vissa filer i projektet genom att lägga till och konfigurera en .gitignore-fil . Poster i en .gitignore
fil gäller endast för ospårade filer. De hindrar inte Git från att rapportera ändringar till spårade filer. Spårade filer är filer som har checkats in och finns i den senaste Git-ögonblicksbilden.
Varje rad i en .gitignore
fil anger ett filsökningsmönster i förhållande till .gitignore
filsökvägen. .gitignore-syntaxen är flexibel och stöder användningen av jokertecken för att ange enskilda eller flera filer efter namn, tillägg och sökväg. Git matchar .gitignore
sökmönster till filerna i projektet för att avgöra vilka filer som ska ignoreras.
Vanligtvis lägger du till en .gitignore
fil i rotmappen för projektet. Du kan dock lägga till en fil i valfri .gitignore
projektmapp för att låta Git veta vilka filer som ska ignoreras i mappen och dess undermappar på valfritt kapslat djup. För flera .gitignore
filer har de filsökningsmönster som en .gitignore
fil anger i en mapp företräde framför de mönster som en .gitignore
fil anger i en överordnad mapp.
Du kan skapa en .gitignore
fil manuellt och lägga till filmönsterposter i den. Du kan också spara tid genom att ladda ned en .gitignore
mall för din utvecklingsmiljö från GitHub gitignore-lagringsplatsen. En av fördelarna med att använda en .gitignore
fil är att du kan checka in ändringar och dela dem med andra.
Kommentar
Visual Studio skapar automatiskt en .gitignore
fil för Visual Studio-utvecklingsmiljön när du skapar en Git-lagringsplats.
Visual Studio 2022 tillhandahåller en Git-versionskontroll via Git-menyn , Git-ändringar och snabbmenyer i Solution Explorer. Visual Studio 2019 version 16.8 erbjuder även Användargränssnittet för Team Explorer Git. Mer information finns på fliken Visual Studio 2019 – Team Explorer .
I fönstret Git-ändringar högerklickar du på alla ändrade filer som du vill att Git ska ignorera och väljer sedan Ignorera det här lokala objektet eller Ignorera det här tillägget. Dessa menyalternativ finns inte för spårade filer.
Alternativet Ignorera det här lokala objektet lägger till en ny post i .gitignore
filen och den valda filen tas bort från listan över ändrade filer.
Alternativet Ignorera det här tillägget lägger till en ny post i .gitignore
filen och tar bort alla filer med samma filnamnstillägg som den valda filen från listan över ändrade filer.
Båda alternativen skapar en .gitignore
fil om den inte redan finns i rotmappen på lagringsplatsen och lägger till en post i den.
Redigera en gitignore-fil
Varje post i .gitignore
filen är antingen: ett filsökningsmönster som anger vilka filer som ska ignoreras, en kommentar som börjar med ett taltecken (#
) eller en tom rad (för läsbarhet). Syntaxen .gitignore
är flexibel och stöder användningen av jokertecken för att ange enskilda eller flera filer efter namn, tillägg och sökväg. Alla sökvägar för filsökningsmönster är relativa till .gitignore
filen.
Här följer några exempel på vanliga mönster för filsökning:
# Ignore all files with the specified name.
# Scope is all repo folders.
config.json
# Ignore all files with the specified extension.
# Scope is all repo folders.
*.json
# Add an exception to prevent ignoring a file with the specified name.
# Scope is all repo folders.
!package.json
# Ignore a file with the specified name.
# Scoped to the 'logs' subfolder.
/logs/test.logfile
# Ignore all files with the specified name.
# Scoped to the 'logs' subfolder and all folders beneath it.
/logs/**/test.logfile
# Ignore all files in the 'logs' subfolder.
/logs/
Så snart du ändrar en .gitignore
fil uppdaterar Git listan med filer som ignoreras.
Kommentar
Windows-användare måste använda ett snedstreck (/
) som sökvägsavgränsare i en .gitignore
fil i stället för att använda ett omvänt snedstreck (\
). Alla användare måste lägga till ett avslutande snedstreck när de anger en mapp.
Använda en global .gitignore-fil
Du kan ange en .gitignore
fil som en global ignorera-fil som gäller för alla lokala Git-lagringsplatser. Om du vill göra det använder du kommandot på git config
följande sätt:
git config core.excludesfile <gitignore file path>
En global .gitignore
fil hjälper till att säkerställa att Git inte checkar in vissa filtyper, till exempel kompilerade binärfiler, på någon lokal lagringsplats. Filsökningsmönster i en lagringsplatsspecifik .gitignore
fil har företräde framför mönster i en global .gitignore
fil.
Använda en exkluderingsfil
Du kan också lägga till poster för filsökningsmönster exclude
i filen i mappen för .git/info/
din lokala lagringsplats. Filen exclude
låter Git veta vilka ospårade filer som ska ignoreras. Den använder samma syntax för filsökningsmönster som en .gitignore
fil.
Poster i en exclude
fil gäller endast för ospårade filer. De hindrar inte Git från att rapportera ändringar i bekräftade filer som den redan spårar. Det finns bara en exclude
fil per lagringsplats.
Eftersom Git inte checkar in eller push-överför filen kan du använda den exclude
på ett säkert sätt för att ignorera filer i det lokala systemet utan att påverka någon annan.
Använda git update-index för att ignorera ändringar
Ibland är det praktiskt att tillfälligt sluta spåra en lokal lagringsplatsfil och låta Git ignorera ändringar i filen. Du kanske till exempel vill anpassa en inställningsfil för din utvecklingsmiljö utan risk för att genomföra ändringarna. För att göra det kan du köra git update-index
kommandot med skip-worktree
flaggan:
git update-index --skip-worktree <file path>
Om du vill återuppta spårningen git update-index
kör du kommandot med --no-skip-worktree
flaggan .
Eller så kan du tillfälligt sluta spåra en fil och låta Git ignorera ändringar i filen med hjälp git update-index
av kommandot med assume-unchanged
flaggan . Det här alternativet är mindre effektivt än skip-worktree
flaggan eftersom en Git-åtgärd pull
som ändrar filinnehåll kan återställa assume-unchanged
flaggan.
git update-index --assume-unchanged <file path>
Om du vill återuppta spårningen git update-index
kör du kommandot med --no-assume-unchanged
flaggan .
Använda git rm för att ignorera ändringar
Poster i en .gitignore
eller exclude
en fil har ingen effekt på filer som Git redan spårar. Git spårar filer som du tidigare har checkat in. Om du vill ta bort en fil permanent från Git-ögonblicksbilden så att Git inte längre spårar den, men utan att ta bort den från filsystemet, kör du följande kommandon:
git rm --cached <file path>
git commit <some message>
Använd sedan en .gitignore
post eller exclude
en filpost för att förhindra att Git rapporterar ändringar i filen.