Git ignorar subcarpetas


Tengo muchos proyectos en mi solución.Net. Me gustaría excluir todas las carpetas" bin/Debug "y" bin/Release "(y sus contenidos), pero aún así incluir la carpeta" bin " en sí y cualquier dll que contenga.

.gitignore con" bin/ "ignora las carpetas" Debug "y" Release", pero también cualquier DLL contenido en la carpeta" bin".

"bin / Debug" o "bin / Release" en el .el archivo gitignore no excluye los directorios, a menos que califique completamente el patrón ignore como "Solution / Project/bin / Debug" - lo cual no quiero hacer ya que tendré que incluir este patrón completo para cada proyecto en mi solución, así como agregarlo para cualquier nuevo proyecto agregado.

Alguna sugerencia?

Author: Marcel, 2010-03-30

9 answers

¿has probado los comodines?

Solution/*/bin/Debug
Solution/*/bin/Release

Con la versión 1.8.2 de git, también puedes usar el comodín ** para que coincida con cualquier nivel de subdirectorios:

**/bin/Debug/
**/bin/Release/
 388
Author: Josh Lee,
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-03-01 13:49:20

Puede usar .gitignore en el nivel superior para ignorar todos los directorios del proyecto con el mismo nombre. Por ejemplo:

Debug/
Release/

Esto debería actualizarse inmediatamente para que sea visible cuando hagas git status. Asegúrese de que estos directorios no estén ya agregados a git, ya que esto anulará los ignorados.

 88
Author: Andreas,
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
2010-03-30 14:59:00

La pregunta no es ignorar todos los subdirectorios, pero no pude encontrar la respuesta en ningún lugar, así que la publicaré: */*.

 43
Author: mgold,
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-04-24 03:49:43

Todas las respuestas anteriores son válidas, pero algo que no creo que se mencione es que una vez que agregas un archivo de ese directorio al repositorio, no puedes ignorar ese directorio/subdirectorio que contiene ese archivo (git ignorará esa directiva). Tendrás que eliminar todos los archivos del directorio de destino primero del repositorio y luego puedes ignorar esa carpeta.

 26
Author: ajacian81,
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
2015-03-08 04:14:27

Además de poner las entradas correctas en su .archivo gitignore, si usted está tratando de ignorar algo ya añadido al repositorio, usted tiene que hacer git rm -r /path/to/dir y confirmar que antes de añadir el directorio a su.archivo gitignore. De lo contrario, lo único que git ignorará será tu directiva ignorar.

 17
Author: MidnightJava,
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-03-07 19:29:33

La única manera de que esto funcionara en mi máquina era hacerlo de esta manera:

# Ignore all directories, and all sub-directories, and it's contents:
*/*

#Now ignore all files in the current directory 
#(This fails to ignore files without a ".", for example 
#'file.txt' works, but 
#'file' doesn't):
/*.*

#Only Include these specific directories and subdirectories:
!wordpress/
!wordpress/*/
!wordpress/*/wp-content/
!wordpress/*/wp-content/themes/

Observe cómo tiene que permitir explícitamente el contenido para cada nivel que desea incluir. Así que si tengo subdirectorios 5 profundamente bajo temas, todavía tengo que deletrear eso.

Esto es del comentario de @Yarin aquí: https://stackoverflow.com/a/5250314/1696153

Estos fueron temas útiles:

También intenté

*
*/*
**/**

Y **/wp-content/themes/**

O /wp-content/themes/**/*

Nada de eso funcionó para mí, tampoco. Un montón de rastro y error!

 13
Author: Katie S,
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
2018-02-20 13:50:01

Para ignorar todos los subdirectorios simplemente puede usar:

**/

Esto funciona a partir de la versión 1.8.2 de git.

 4
Author: frederickjh,
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-11-01 15:34:57

La forma genérica de ignorar todas las subcarpetas, mientras continúa rastreando los archivos que están en el directorio /bin sería agregar la siguiente línea a su proyecto .archivo gitignore:

bin/*/*

Si desea ignorar solo subcarpetas con nombre particular, puede hacer:

bin/Debug/*
bin/Release/*

Nb. si el directorio bin no está en la raíz de su proyecto (junto al .archivo gitignore), entonces en lugar de por ejemplo. bin/*/* es posible que necesites path/to/bin/*/*

 3
Author: Nick F,
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-02-15 17:28:54

Para excluir contenido y subdirectorios:

**/bin/*

Para excluir todos los subdirectorios pero tomar el contenido, agregue"/":

**/bin/*/
 2
Author: A. Morel,
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
2018-06-18 13:28:17