Jeg har en katalogstruktur som dette:
.git/
.gitignore
main/
...
tools/
...
...
Inne i main og tools, og hvilken som helst annen katalog, på hvilket som helst nivå, kan det være en 'bin' katalog, som jeg vil ignorere (og jeg vil ignorere alt under den også). Jeg har prøvd hvert av disse mønstrene i .gitignore, men ingen av dem fungerer:
/**/bin/**/*
/./**/bin/**/*
./**/bin/**/*
**/bin/**/*
*/bin/**/*
bin/**/*
/**/bin/* #and the others with just * at the end too
Kan noen hjelpe meg? Det første mønsteret (det jeg tror skal fungere) fungerer helt fint hvis jeg gjør dette:
/main/**/bin/**/*
Men jeg vil ikke ha en oppføring for hver toppnivåkatalog, og jeg vil ikke måtte endre .gitignore hver gang jeg legger til en ny.
Dette er på Windows ved hjelp av den nyeste msysgit.
EDIT: en ting til, det er filer og kataloger som har understrengen ' bin ' i navnene sine, jeg vil ikke at de skal ignoreres :)
Før versjon 1.8.2 hadde **
ingen spesiell betydning i .gitignore
. Fra 1.8.2 støtter git **
for å bety null eller flere underkataloger (se release notes).
Måten å ignorere alle kataloger som heter bin hvor som helst under det gjeldende nivået i et katalogtre er med en .gitignore
-fil med mønsteret:
bin/
På man
-siden er det et eksempel på å ignorere en katalog kalt foo
ved hjelp av et analogt mønster.
Rediger:
Hvis du allerede har noen bin-mapper i git-indeksen din som du ikke lenger ønsker å spore, må du fjerne dem eksplisitt. Git vil ikke slutte å spore baner som allerede spores bare fordi de nå samsvarer med et nytt .gitignore
-mønster. Utfør en mappefjerning (rm) fra bare indeks (--cached) rekursivt (-r). Kommandolinjeeksempel for rotmappe:
git rm -r --cached bin
.gitignore` av drømmen din ser ut til å være:
bin/
på øverste nivå.