Jeg har en mappestruktur som følger:
.git/
.gitignore
main/
...
tools/
...
...
Inde i main og tools, og enhver anden mappe, på ethvert niveau, kan der være en 'bin' mappe, som jeg vil ignorere (og jeg vil også ignorere alt under den). I've prøvet hver af disse mønstre i .gitignore, men ingen af dem virker:
/**/bin/**/*
/./**/bin/**/*
./**/bin/**/*
**/bin/**/*
*/bin/**/*
bin/**/*
/**/bin/* #and the others with just * at the end too
Er der nogen der kan hjælpe mig? Det første mønster (det jeg tror burde virke) virker fint, hvis jeg gør dette:
/main/**/bin/**/*
Men jeg ønsker ikke at have en post for hver top-level mappe, og jeg ønsker ikke at skulle ændre .gitignore, hver gang jeg tilføjer en ny.
Dette er på Windows med den nyeste msysgit.
EDIT: en ting mere, der er filer og mapper, der har understrengen 'bin' i deres navne, jeg don't ønsker at disse skal ignoreres :)
Før version 1.8.2 havde **
ikke nogen særlig betydning i .gitignore
. Fra og med 1.8.2 understøtter git **
til at betyde nul eller flere undermapper (se release notes).
Måden at ignorere alle mapper kaldet bin et sted under det aktuelle niveau i et mappetræ er med en .gitignore
-fil med mønsteret:
bin/
På siden man
er der et eksempel på at ignorere en mappe kaldet foo
ved hjælp af et tilsvarende mønster.
Rediger:
Hvis du allerede har bin-mapper i dit git-indeks, som du ikke længere ønsker at spore, skal du fjerne dem eksplicit. Git vil ikke stoppe med at spore stier, der allerede er sporet, bare fordi de nu passer til et nyt .gitignore
-mønster. Udfør en folder remove (rm) kun fra indekset (--cached) recursivt (-r). Kommandolinjeeksempel for rod bin-mappen:
git rm -r --cached bin
Din drømmes .gitignore
ser ud til at være:
bin/
på det øverste niveau.