Git Ignora todo en un directorio excepto subcarpetas
Esta es mi estructura de carpetas:
data/
.gitignore
uploads/
.gitignore
Me gustaría confirmar las carpetas pero no los archivos dentro de ellas.
Así que añado a .gitignore archivos en cada carpeta con el siguiente contenido:
# Ignore everything in this directory
*
# Except this file
!.gitignore
El problema es que *
también coincide en los directorios, por lo que git solo rastrea data/.gitignore
3 answers
Por favor no mal uso .gitignore
archivos. Mejor apégate a las formas predeterminadas de hacerlo, para que los desarrolladores posteriores puedan entrar rápidamente en tu proyecto.
- Agregue un archivo
.gitkeep
vacío en las carpetas que desea confirmar sin los archivos -
Excluye las carpetas, pero no el
.gitkeep
de tu principal.gitignore
archivo.folder/* !folder/.gitkeep
Esto ignora todos los archivos de una carpeta, pero no el archivo .gitkeep
. Ahora la carpeta se comprometerá con solo el archivo .gitkeep
como contenido.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-25 12:37:10
La solución es bastante fácil, añadir !*/
a la .los archivos gitignore y solo los archivos de la carpeta actual serán ignorados
# Ignore everything in this directory
*
# Except this file
!.gitignore
# Except folders
!*/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-21 07:32:10
Prueba esto:
*.*
!.gitignore
!*/*
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-17 21:59:05