Android

Bestanden en mappen in git (.gitignore) negeren

Git Tutorial 8 - .gitignore file

Git Tutorial 8 - .gitignore file

Inhoudsopgave:

Anonim

Wanneer je aan een project werkt dat Git gebruikt, wil je vaak uitsluiten dat specifieke bestanden of mappen naar de externe repository worden gepusht.

Het .gitignore bestand geeft aan welke niet-bijgehouden bestanden Git moet negeren.

Welke bestanden moeten worden genegeerd?

Genegeerde bestanden zijn meestal platformspecifieke bestanden of automatisch gemaakte bestanden van de build-systemen. Enkele veel voorkomende voorbeelden zijn:

  • Runtime-bestanden zoals log-, lock-, cache- of tijdelijke bestanden Bestanden met gevoelige informatie, zoals wachtwoorden of API-sleutels. Gecompileerde code, zoals.class of.o. Dependency-directories, zoals /vendor of /node_modules .Build-directories, zoals /public , /out of /dist .Systeembestanden zoals .DS_Store of Thumbs.db IDE of configuratiebestanden voor teksteditor.

.gitignore

Een lokaal .gitignore bestand wordt meestal in de hoofdmap van de repository geplaatst. U kunt echter meerdere .gitignore bestanden maken in verschillende submappen in uw repository. De patronen in de .gitignore bestanden komen overeen met de map waarin het bestand zich bevindt.

Patronen die zijn gedefinieerd in de bestanden die zich in mappen op een lager niveau bevinden (submappen) hebben voorrang op die in mappen op een hoger niveau.

Lokale .gitignore bestanden worden gedeeld met andere ontwikkelaars en moeten patronen bevatten die nuttig zijn voor alle andere gebruikers van de repository.

Persoonlijke negeerregels

Patronen die specifiek zijn voor uw lokale repository en die niet naar andere repository's mogen worden gedistribueerd, moeten worden ingesteld in het .git/info/exclude bestand.

U kunt dit bestand bijvoorbeeld gebruiken om gegenereerde bestanden van uw persoonlijke projecttools te negeren.

Wereldwijde .gitignore

Met Git kun je ook een globaal .gitignore bestand maken, waar je .gitignore kunt definiëren voor elke Git-repository op je lokale systeem.

Het bestand kan elke gewenste naam krijgen en op elke locatie worden opgeslagen. De meest voorkomende plaats om dit bestand te bewaren is de thuismap. Je moet het bestand handmatig maken en Git configureren om het te gebruiken.

Om bijvoorbeeld ~/.gitignore_global als het globale Git- ~/.gitignore_global , zou je het volgende doen:

  1. Maak het bestand:

    touch ~/.gitignore_global

    Voeg het bestand toe aan de Git-configuratie:

    git config --global core.excludesfile ~/.gitignore_global

    Open het bestand met uw teksteditor en voeg uw regels eraan toe.

Globale regels zijn met name handig voor het negeren van bepaalde bestanden die u nooit wilt vastleggen, zoals bestanden met gevoelige informatie of gecompileerde uitvoerbare bestanden.

Eerder vastgelegde bestanden negeren

De bestanden in uw werkkopie kunnen worden gevolgd of niet worden gevolgd.

Als u een bestand wilt negeren dat eerder is vastgelegd, moet u het bestand unstagen en uit de index verwijderen en vervolgens een regel voor het bestand in .gitignore :

git rm --cached filename

De optie --cached vertelt git om het bestand niet uit de werkende boom te verwijderen, maar alleen om het uit de index te verwijderen.

Gebruik de optie -r om een ​​map recursief te verwijderen:

git rm --cached filename

Gebruik bij het recursief verwijderen van bestanden de optie -n die een "dry run" uitvoert en u laat zien welke bestanden worden verwijderd:

git rm -r -n directory

Foutopsporing .gitignore bestand

Soms kan het een uitdaging zijn om te bepalen waarom een ​​specifiek bestand wordt genegeerd, vooral als u meerdere .gitignore bestanden of complexe patronen gebruikt. Dit is waar het git check-ignore commando met de -v optie, die git vertelt om details over het overeenkomende patroon weer te geven, handig is.

Als u bijvoorbeeld wilt controleren waarom het bestand www/yarn.lock wordt genegeerd, voert u het volgende uit:

git check-ignore -v www/yarn.lock

De uitvoer toont het pad naar het gitignore bestand, het nummer van de overeenkomende regel en het werkelijke patroon.

www/.gitignore:31:/yarn.lock www/yarn.lock

De opdracht accepteert ook meer dan één bestandsnaam als argumenten en het bestand hoeft niet in uw werkende boom te bestaan.

Alle genegeerde bestanden weergeven

Het git status commando met de --ignored optie toont een lijst van alle genegeerde bestanden:

git status --ignored

Conclusie

Met het .gitignore bestand kunt u voorkomen dat bestanden in de repository worden ingecheckt. Het bestand bevat globale patronen die beschrijven welke bestanden en mappen moeten worden genegeerd.

gitignore.io is een online service waarmee u .gitignore bestanden kunt genereren voor uw besturingssysteem, programmeertaal of IDE.