Waarom behoudt ! geen bestand in een genegeerde map?

Een uitzondering werkt niet zolang de bovenliggende map is uitgesloten. Controleer de mapregel voordat je meer uitzonderingen toevoegt.

1. Herken het foute patroon

Neem de niet-gevolgde bestanden build/keep.txt en build/discard.txt vanaf de projecthoofdmap. Deze regels sluiten build zelf uit, waardoor Git niet naar keep.txt zoekt. De latere uitzondering kan dat bestand niet terughalen.

/build/
!/build/keep.txt

2. Negeer de inhoud, behoud één bestand

Vervang de twee vorige regels in het .gitignore van de hoofdmap door de volgende. build blijft doorzoekbaar, directe inhoud wordt genegeerd en keep.txt wordt opnieuw opgenomen. Diepere uitzonderingen vereisen ook doorzoekbare bovenliggende mappen.

Bij gelijke prioriteit wint de laatste overeenkomende regel. Zet de uitzondering na de uitsluiting en controleer ook andere regels en geneste .gitignore-bestanden.

/build/*
!/build/keep.txt

3. Controleer beide bestanden

Maak beide voorbeeldbestanden en voer de commando’s uit vanuit de hoofdmap. De uitgebreide uitvoer moet !/build/keep.txt voor keep.txt en /build/* voor discard.txt tonen. Een !-regel betekent opnieuw opnemen, niet negeren.

git check-ignore -v -- build/keep.txt build/discard.txt

De status hoort build/keep.txt als niet gevolgd te tonen en build/discard.txt weg te laten. Worden ze al gevolgd, lees dan dat artikel: negeerregels veranderen de index niet.

git status --short --untracked-files=all -- build/

Hoe negeer ik bestanden die Git al volgt?

Raadpleeg de officiële bronnen voor het precieze gedrag en meer informatie: Git-documentatie · Documentatie van git check-ignore