ver usar que modificados ignorar hacer hace como comando carpetas cambios archivos git gitignore

usar - Git: ignora ciertos archivos en subdirectorios, pero no todos



ignorar cambios git (3)

Tengo una estructura similar a la siguiente:

/root/ /root/data/ /root/data/script.php /root/data/some.json /root/data/feature/one.json /root/data/feature/two.json /root/data/other-feature/one.json /root/data/other-feature/important-script.php

Me gustaría que git ignore cualquier archivo .json en la ruta ''/ data / ...'', pero ''/ data /'' a veces contiene subdirectorios.

Según entiendo, un simple data/*.json Json en gitignore solo coincidirá con un directorio, ya que * no coincide con / , como se indica en http://git-scm.com/docs/gitignore , "Pattern Format", viñeta n. ° 6:

De lo contrario, git trata el patrón como un comodín de shell adecuado para el consumo por fnmatch (3) con el indicador FNM_PATHNAME: los comodines en el patrón no coincidirán con a / en el nombre de ruta. Por ejemplo, "Documentation / *. Html" coincide con "Documentation / git.html" pero no con "Documentation / ppc / ppc.html" o "tools / perf / Documentation / perf.html".

¿Hay una manera simple de hacer esto o necesito agregar activamente archivos de gitignore en cada subdirectorio, explícitamente?


Este patrón funciona para mí para la subcarpeta de datos ignorando únicamente los archivos png y jpg:

**/data/**/*.png **/data/**/*.jpg


Recientemente escribí una publicación sobre este problema. Mira here .

Básicamente lo que necesita es colocar un .gitignore con *.json en el directorio /data/ .

UPD : Desde git 1.8.4 ( 1.8.2 si está usando msysgit) es posible usar patrones de doble estrella, como /data/**/*.json


puede colocar data/**/*.json en su .gitignore en /root para evitar múltiples archivos .gitignore en directorios diferentes

**/ - coincide con cualquier recuento de subdirectorios (incluido el actual)

ejemplo: data/**/*.json record ignorará data/1.json , data/subfolder/2.json , data/../../3.json