Estoy tratando de evitar el siguiente patrón en mi .gitignorearchivo.
MyPrject/WebApp/Scripts/special/*.js
MyPrject/WebApp/Scripts/special/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*/*/*.js
MyPrject/WebApp/Scripts/special/*/*/*/*/*/*/*.js
Nosotros tratamos:
MyPrject/WebApp/Scripts/special/**.js
MyPrject/WebApp/Scripts/special/**/*.js
Sin embargo, esto no funcionó. Esto es git en Windows. ¿Existe una forma más concisa de hacer esto sin repetir las cosas?

Respuestas:
A partir de git 1.8.2, esto:
Debería funcionar de acuerdo con esta respuesta . También me funciona en Windows 7 usando Sourcetree 1.6.12.0 y la versión de git que instala (1.8.4-preview20130916).
Para ignorar todos los archivos y carpetas de un directorio de forma recursiva:
fuente
/al principio. Ejemplo:/MyProject/WebApp/Scripts/special/**/*.js.gitignoreen esta pregunta estaba en la raíz del repositorio (directorio principal de/Webapp).foo/bar/*/*(segunda línea)!foo/bar/**/*.jsFuncionó solo para un nivel de subdirectorios, pero no de forma recursiva.Siguiente página de manual de gitignore:
Entonces, esto claramente significa que no hay forma de especificar una cierta cantidad de directorios entre dos cadenas, como entre
specialyjs.Sin embargo, puede tener un
.gitignorearchivo por directorio, por lo que tal vez en su caso el siguiente contenidoen el siguiente lugar
sería suficiente?
fuente
MyPrject/WebApp/Scripts/special*.jsy encajabaMyPrject/WebApp/Scripts/specialfile.jstan bien comoMyPrject/WebApp/Scripts/special/a/b/c/file.js. Sin embargo, por alguna razón, el comportamiento ha cambiado y mi solución actual es enumerar los directorios individualmente. Estoy usando GitHub para Windows.find MyPrject/WebApp/Scripts/special -type d -printf 'echo "*.js" >> %h/.gitignore\n git add %h/.gitignore\n' | shEsto me funciona en osx.
fuente
Intente ejecutar
git rm -r --cached MyPrject/WebApp/Scripts/special/Su directorio mencionado podría haber sido almacenado en caché por git y aparecerá en archivos sin seguimiento. Después de borrar el caché, asegúrese de tenerlo mencionado.gitignore.fuente