¿Cómo puedo ignorar Git subcarpetas/subdirectorios?
Tengo muchos proyectos en mi solución .NET . Me gustaría excluir todas las carpetas "bin/Debug" y "bin/Release" (y su contenido), pero seguir incluyendo la carpeta "bin" y cualquier archivo DLL que contenga.
.gitignore con "bin/" ignora las carpetas " Debug " y " Release ", pero también cualquier archivo DLL contenido en la carpeta "bin".
bin/Debug o bin/Release en el archivo .gitignore no excluye los directorios a menos que califique completamente el patrón de ignorar como Solución/Proyecto/bin/Debug , lo cual no quiero hacer ya que necesitaré incluir este patrón completo para cada proyecto en mi solución, así como agregarlo para cualquier proyecto nuevo agregado.
¿Cómo puedo hacerlo?
Utilice comodines:
Solution/*/bin/Debug
Solution/*/bin/Release
Con la versión 1.8.2 de Git, también puedes usar el **
comodín para hacer coincidir cualquier nivel de subdirectorios:
**/bin/Debug/
**/bin/Release/
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 accedas al estado de git. Asegúrese de que estos directorios no estén agregados a git, ya que eso anulará los ignorados.
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 ).
Para ignorar archivos ya agregados, ejecute
git rm -r --cached .
De lo contrario, primero tendrá que eliminar todos los archivos del directorio de destino del repositorio y luego podrá ignorar esa carpeta.