Delen via


Bestandswijzigingen negeren met Git

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Git mag niet elk bestand in uw project bijhouden. Tijdelijke bestanden uit uw ontwikkelomgeving, testuitvoer en logboeken zijn allemaal voorbeelden van bestanden die waarschijnlijk niet hoeven te worden bijgehouden.

U kunt verschillende mechanismen gebruiken om Git te laten weten welke bestanden in uw project niet moeten worden bijgehouden en om ervoor te zorgen dat Git geen wijzigingen in die bestanden rapporteert. Voor bestanden die niet door Git worden bijgehouden, kunt u een .gitignore of exclude meer bestanden gebruiken. Voor bestanden die Door Git worden bijgehouden, kunt u Git vertellen dat ze niet meer moeten worden bijgehouden en dat wijzigingen moeten worden genegeerd.

In dit artikel leert u het volgende:

  • Wijzigingen in niet-bijgehouden bestanden negeren met behulp van een .gitignore bestand.
  • Wijzigingen in niet-bijgehouden bestanden negeren met behulp van een exclude bestand.
  • Stop met het bijhouden van een bestand en negeer wijzigingen met behulp van de git update-index opdracht.
  • Stop met het bijhouden van een bestand en negeer wijzigingen met behulp van de git rm opdracht.

Een .gitignore-bestand gebruiken

U kunt Git vertellen dat bepaalde bestanden in uw project niet worden bijgehouden door een .gitignore-bestand toe te voegen en te configureren. Vermeldingen in een .gitignore bestand zijn alleen van toepassing op niet-bijgehouden bestanden. Ze voorkomen niet dat Git wijzigingen rapporteert aan bijgehouden bestanden. Bijgehouden bestanden zijn bestanden die zijn doorgevoerd en aanwezig zijn in de laatste Git-momentopname.

Elke regel in een .gitignore bestand geeft een bestandszoekpatroon op ten opzichte van het .gitignore bestandspad. De syntaxis van .gitignore is flexibel en ondersteunt het gebruik van jokertekens om afzonderlijke of meerdere bestanden op naam, extensie en pad op te geven. Git komt overeen met .gitignore zoekpatronen voor de bestanden in uw project om te bepalen welke bestanden moeten worden genegeerd.

Normaal gesproken voegt u een .gitignore bestand toe aan de hoofdmap van uw project. U kunt echter een .gitignore bestand toevoegen aan elke projectmap om Git te laten weten welke bestanden in die map en de bijbehorende submappen moeten worden genegeerd op een geneste diepte. Voor meerdere .gitignore bestanden hebben de bestandszoekpatronen die een .gitignore bestand in een map opgeeft voorrang boven de patronen die een .gitignore bestand in een bovenliggende map opgeeft.

U kunt handmatig een .gitignore bestand maken en vermeldingen voor bestandspatronen toevoegen. U kunt ook tijd besparen door een .gitignore sjabloon voor uw ontwikkelomgeving te downloaden vanuit de GitHub gitignore-opslagplaats. Een van de voordelen van het gebruik van een .gitignore bestand is dat u wijzigingen kunt doorvoeren en met anderen kunt delen.

Notitie

Visual Studio maakt automatisch een .gitignore bestand voor de Visual Studio-ontwikkelomgeving wanneer u een Git-opslagplaats maakt.

Visual Studio 2022 biedt een Git-versiebeheer via het Git-menu, Git-wijzigingen en snelmenu's in Solution Explorer. Visual Studio 2019 versie 16.8 biedt ook de Git-gebruikersinterface van Team Explorer . Zie het tabblad Visual Studio 2019 - Team Explorer voor meer informatie.

Klik in het venster Git-wijzigingen met de rechtermuisknop op een gewijzigd bestand dat u wilt negeren door Git en selecteer dit lokale item negeren of deze extensie negeren. Deze menuopties bestaan niet voor bijgehouden bestanden.

Schermopname van de opties voor het contextmenu voor gewijzigde bestanden in het venster Git-wijzigingen in Visual Studio.

Met de optie Dit lokale item negeren wordt een nieuwe vermelding aan het .gitignore bestand toegevoegd en wordt het geselecteerde bestand uit de lijst met gewijzigde bestanden verwijderd.

Met de optie Deze extensie negeren wordt een nieuwe vermelding toegevoegd aan het .gitignore bestand en worden alle bestanden met dezelfde extensie als het geselecteerde bestand uit de lijst met gewijzigde bestanden verwijderd.

Met beide opties maakt u een .gitignore bestand als het nog niet bestaat in de hoofdmap van uw opslagplaats en er een vermelding aan toevoegt.

Een gitignore-bestand bewerken

Elke vermelding in het .gitignore bestand is: een bestandszoekpatroon dat aangeeft welke bestanden moeten worden genegeerd, een opmerking die begint met een nummerteken (#) of een lege regel (voor leesbaarheid). De .gitignore syntaxis is flexibel en ondersteunt het gebruik van jokertekens om afzonderlijke of meerdere bestanden op naam, extensie en pad op te geven. Alle paden voor bestandszoekpatronen zijn relatief ten opzichte van het .gitignore bestand.

Hier volgen enkele voorbeelden van veelvoorkomende patronen voor het zoeken naar bestanden:

# 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/

Zodra u een .gitignore bestand wijzigt, wordt de lijst met bestanden die door Git worden genegeerd bijgewerkt.

Notitie

Windows-gebruikers moeten een slash (/) gebruiken als padscheidingsteken in een .gitignore bestand in plaats van een backslash (\). Alle gebruikers moeten een afsluitende slash toevoegen bij het opgeven van een map.

Een globaal .gitignore-bestand gebruiken

U kunt een .gitignore bestand aanwijzen als een globaal negerend bestand dat van toepassing is op alle lokale Git-opslagplaatsen. Gebruik hiervoor de git config opdracht als volgt:

git config core.excludesfile <gitignore file path>

Een globaal .gitignore bestand zorgt ervoor dat Git bepaalde bestandstypen, zoals gecompileerde binaire bestanden, niet doorvoert in een lokale opslagplaats. Bestandszoekpatronen in een specifiek .gitignore bestand hebben voorrang op patronen in een globaal .gitignore bestand.

Een uitsluitingsbestand gebruiken

U kunt ook vermeldingen voor zoekpatronen voor bestanden toevoegen aan het exclude bestand in de map van uw .git/info/ lokale opslagplaats. Het exclude bestand laat Git weten welke niet-bijgehouden bestanden moeten worden genegeerd. Er wordt dezelfde syntaxis gebruikt voor zoekpatronen voor bestanden als een .gitignore bestand.

Vermeldingen in een exclude bestand zijn alleen van toepassing op niet-bijgehouden bestanden. Ze voorkomen niet dat Git wijzigingen rapporteert aan doorgevoerde bestanden die al worden bijgehouden. Er bestaat slechts één exclude bestand per opslagplaats.

Omdat Git het exclude bestand niet doorvoert of pusht, kunt u het veilig gebruiken om bestanden op uw lokale systeem te negeren zonder dat dit van invloed is op iemand anders.

Git update-index gebruiken om wijzigingen te negeren

Soms is het handig om het bijhouden van een lokaal opslagplaatsbestand tijdelijk te stoppen en Git wijzigingen in het bestand te laten negeren. U kunt bijvoorbeeld een instellingenbestand voor uw ontwikkelomgeving aanpassen zonder het risico dat uw wijzigingen worden doorgevoerd. Hiervoor kunt u de git update-index opdracht uitvoeren met de skip-worktree vlag:

git update-index --skip-worktree <file path>

Als u het bijhouden wilt hervatten, voert u de git update-index opdracht uit met de --no-skip-worktree vlag.

U kunt ook tijdelijk stoppen met het bijhouden van een bestand en Git wijzigingen in het bestand laten negeren met behulp van de git update-index opdracht met de assume-unchanged vlag. Deze optie is minder effectief dan de skip-worktree vlag, omdat een Git-bewerking pull waarmee bestandsinhoud wordt gewijzigd, de assume-unchanged vlag kan terugdraaien.

git update-index --assume-unchanged <file path>

Als u het bijhouden wilt hervatten, voert u de git update-index opdracht uit met de --no-assume-unchanged vlag.

Git RM gebruiken om wijzigingen te negeren

Vermeldingen in een .gitignore of exclude bestand hebben geen effect op bestanden die Al door Git worden bijgehouden. Git houdt bestanden bij die u eerder hebt vastgelegd. Als u een bestand definitief uit de Git-momentopname wilt verwijderen zodat Git het niet meer bijhoudt, maar zonder het uit het bestandssysteem te verwijderen, voert u de volgende opdrachten uit:

git rm --cached <file path>
git commit <some message>

Gebruik vervolgens een .gitignore of exclude meer bestanden om te voorkomen dat Git wijzigingen in het bestand rapporteert.

Volgende stappen