2010-03-19 12 views
52

¿Cómo agrego algo al .gitignore para que la coincidencia no sea recursiva? Por ejemplo, deseo ignorar el directorio foo y el archivo bar.txt en el directorio actual, pero no existe ninguno en los subdirectorios.¿Cómo agrego algo al .gitignore para que la coincidencia no sea recursiva?

He intentado esto para mi archivo .gitignore:

foo/ 
bar.txt 

Pero, por desgracia git aplica esta forma recursiva, de manera que otherdir/bar.txt y otherdir/foo/ también son ignorados, que no es lo que quiero.

(¿Hay un comando de Git que me muestra todos los ficheros ignorados, y hacer referencia al archivo .gitignore que es responsable del fichero ser ignorado? Esto sería útil para la depuración.)

Respuesta

91

La solución es colocar una líder de tala en las entradas .gitignore:

/foo/ 
/bar.txt 

(pensé que probé este antes de publicar en StackOverflow, pero está claro que no había probado de forma adecuada, ya que esto funciona perfectamente.)

+0

Es posible que haya intentado esto, y tenía algunos espacios en blanco iniciales/finales en algún lado que supuestamente causa problemas con .gitignore. Quién sabe, de cualquier manera esta pregunta me ayudó lol –

11

Desde el gitig nore página de manual:

¡Un prefijo opcional! que niega el patrón; cualquier archivo coincidente excluido por un patrón anterior se incluirá nuevamente. Si un patrón negado coincide, esto anulará las fuentes de patrones de precedencia inferiores.

Así !* como la primera línea en su .gitignore borrará todos los patrones anteriores.

+0

Ok, obviamente estaba haciendo cosas de una manera mucho más complicada todo el tiempo:] +1 a la respuesta de barra diagonal, no puedo votar todavía. – hermannloose

+0

+1 para que pueda votar ahora :) ¡Además, no sabía sobre el! prefijo. –

Cuestiones relacionadas