Me encuentro con un problema extraño con .gitignore
en Windows.
Quiero que git ignore todos los files .exe
, excepto los de la carpeta Dependencies
(y todas las subcarpetas).
Así que tengo:
.gitignore
:
*.exe !/Dependencies/**/*.exe
Esto, lamentablemente, no funciona.
Mientras tanto, esto hace:
*.exe !/Dependencies/folder/subfolder/*.exe
Entonces me pregunto, ¿estoy arruinando algo, o es esto algún tipo de error?
Estoy ejecutando msysgit en Windows (Windows 7 x64) versión 1.6.5.1-preview20091022
Gracias por adelantado por cualquier contribución 🙂
Desde git 1.8.2 (8 de marzo de 2013) , **
ahora es compatible:
Los patrones en los files
.gitignore
y.gitattributes
pueden tener**/
, como un patrón que coincide con 0 o más niveles de subdirectory .Por ejemplo, "
foo/**/bar
" coincide con "bar
" en "foo
" o en un subdirectory de "foo
".
En su caso, eso significa que esta línea podría ser ahora compatible:
!/Dependencies/**/*.exe
La documentation de .gitignore dice:
git trata el patrón como un globo de caparazón adecuado para el consumo por fnmatch (3) con el indicador FNM_PATHNAME
Es posible que fnmatch en su plataforma no admita ** en una ruta.
Puede agregar un file .gitignore
a la carpeta Dependencies
con
*.exe
dentro. El inconveniente obvio es que ignorar las especificaciones están ahora dispersas entre varios files.