El file .gitignore no ignora correctamente

Tengo un file .gitignore con los siguientes contenidos.

*.o *.exe *Debug/* *.vpb *.vtg *.vpwhistu *.vpwhist *.vtg 

Después de trabajar en un proyecto (modificando un par de files) en mi directory de trabajo, si lo hago

 git status 

Obtengo la siguiente salida

 Workspace/playpen/boost/Debug/simple_ls.o 

¿Por qué sucede esto a pesar de que *Debug/* está dentro de .gitignore . ¿No es ese el objective de .gitignore?

.gitignore solo funciona en files que no son ya parte del repository remoto. Mi suposition es que simple_ls.o ya estaba siendo rastreado cuando agregaste la regla a .gitignore . Si desea que Git lo ignore, primero debe eliminarlo del repository remoto a través de:

 git rm --cached Workspace/playpen/boost/Debug/simple_ls.o 

Después de esto, el patrón .gitignore evitará que este file se agregue al repository.

¿Has modificado tu .gitignore? ¿Este file ya fue rastreado? porque se supone que ignora los files .o también.

para ignorar la carpeta de debugging debe modificar sus reglas como: **Debug/

Tener un / en su patrón (que no sea el último carácter del patrón) ancla el patrón en el punto de la jerarquía del directory que contiene el file .gitignore .

Esto significa que *Debug/* ignorará cualquier cosa en directorys como FooDebug , BarDebug y Debug en el mismo nivel que .gitignore , pero no más adelante en la jerarquía. Para ignorar cualquier directory que tenga nombres que terminen en Debug , simplemente use el patrón:

 *Debug/ 

La barra inclinada le dice a Git que solo coincida con los directorys, pero este patrón coincidirá en cualquier nivel de su tree de directorys.