2012-08-07 18 views
17

no estoy seguro de por qué esto no funciona, ya que he hecho esto cargas! Tal vez estoy teniendo un mal día ...gitignore - solo permite ciertas extensiones y archivos

estoy usando el siguiente código para ignorar todos los archivos excepto para ciertos nombres de archivo y extensión

* 
!.gitattributes 
!.gitignore 
!readme.md 
!.gitkeep 
!*.php 

por alguna razón, su único que me permite cometer el .gitignore y readme.md, aunque tengo archivos php en subcarpetas, etc. ¿Hay algún problema con eso? Solo fyi, estoy usando "git add -A" para recoger los archivos para confirmar.

¡Gracias de antemano!

Respuesta

32

La solución es decirle a Git no hacer caso omiso de los subdirectorios:

* 
!.gitattributes 
!.gitignore 
!readme.md 
!.gitkeep 
!*.php 
!*/ 

De lo contrario, sólo se aceptarán los archivos *.php en el primer nivel del directorio y se ignorarán todos los subdirectorios.

+0

No sé por qué nunca he tenido que hacer eso antes, pero funciona muy bien ahora. ¡Gracias! – jleck

+0

Use *. *. Tener un * en la parte superior excluirá cualquier archivo * .php que se encuentre en subdirectorios. Esta respuesta es incorrecta. –

3

El método más sofisticado para lograr este

crear .gitignore archivo en el repositorio root, y añadir a continuación las líneas de .gitignore archivo

*.* 
!.gitattributes 
!.gitignore 
!readme.md 
!.gitkeep 
!*.php 

Esto incluirá todos los archivos especificada de directorio y subdirectorio recursivamente.

probado en

versión git 2.12.2.windows.2

+1

Me gusta esta respuesta mejor que la aceptada porque funciona más allá de un solo nivel de recursión – Magnus

Cuestiones relacionadas