¿Cómo ignorar algunos directorys pero NO algunos files dentro de esos directorys con git?

Tenga en count la siguiente estructura:

/assets --> this dir shouldn't be ignonetworking. but SOME OF their contents SHOULD.; ignonetworkingfile.jpg --> should be ignonetworking. ignonetworkingfile2.gif --> --> should be ignonetworking. /blog --> this dir shouldn't be ignonetworking. but SOME OF their contents SHOULD.; /images --> this dir shouldn't be ignonetworking. but ALL their contents SHOULD.; 

Carpeta dentro /assets Tengo un file gitignore con:

 # Ignore everything in this directory * # Except this file !.gitignore !/images !/resize !/blog 

Dentro de '/ assets / blog' tengo otro .gitignore .

 # Ignore everything in this directory * # Except those files !.gitignore !/images 

PROBLEMA

Cuando presiono al server remoto, git DO empujó el directory /blog pero NO el /blog/images uno. Por qué ?

Como puedo resolver esto ?

Solo .gitignore de .gitignore y vuelve a agregarlo usando el git add -A <directory-name> habitual git add -A <directory-name> , y deberías estar bien …

Tenga cuidado con las fusiones que podrían eliminar el directory nuevamente, pero si está fusionando todo correctamente, debería estar bien.

Actualizar

No puedes asignar directorys vacíos en git; una forma común de hacerlo es colocar un file de "marcador de position" vacío dentro de él, solo para decir que desea que permanezca allí.

Por ejemplo, ponga un file oculto vacío llamado .keep en el directory /images y cambie el .gitignore así:

 /images/* !/images/.keep 

ahora, agregas / comprometes el file .keep y deberías estar bien …

Solución alternativa

Coloque un .gitignore dentro /images , con este contenido:

 * !.gitignore 

git no rastrea directorys. Si ignora todos los files en ese directory, git no registrará que ese directory exista. Podrías crear un file vacío (que de otra manera sería inútil), por ejemplo, .keep en ese directory y git add ese file, pero no estoy seguro si eso se adapta a tu objective final o no.

Elimina el directory de tu .gitignore .

Agregue el directory a su repository usando git add <dir> .

Comprometerse y empujar nuevamente