gitignore ignorando .emacs.d incluso con la exception! .emacs.d

Este .gitignore no ignora .emacs.d

 .* !.emacs.d 

pero el siguiente lo ignora:

 * <- only change .* !.emacs.d 

¿Por qué?

Esto es con git-1.7.10-x86_64

Sospecho que * coincide con el directory actual en el que se encuentra el file .emacs.d .
Y si se ignora un directory, git no se verá en absoluto (incluso para las excepciones de reglas de nulidad).

Ver, para más sobre ese comportamiento:

  • " ¿Cómo gitignore reglas de exclusión de gitignore ? "
  • " .gitignore excluye la carpeta pero incluye una subcarpeta específica "

Si excluye aDirectory/ , todo lo que contiene se excluirá siempre (incluso si algún patrón de exclusión negativa posterior ("ignorar") pudiera coincidir con algo en un aDirectory/ ).

El usuario de OP273158 pregunta:

¿Cómo puedo entonces excluir todos los files y directorys (ocultos o no ocultos) en una ruta determinada (por ejemplo, mi directory personal), excepto .emacs.d (y otras excepciones)

Supongo que esto debería funcionar mejor:

 ./* !/.emacs.d