¿Cuál es la diferencia entre Git ignorando el directorio y el directorio / *?

Estoy confundido acerca de cuál es la forma correcta de ignorar el contenido de un directorio en git.

Supongamos que tengo la siguiente estructura de directorios:

my_project  
     |--www  
         |--1.txt  
         |--2.txt
     |--.gitignore

¿Cuál es la diferencia entre poner esto?

www

¿Y esto?

www/*

La razón por la que hago esta pregunta es: en git, si un directorio está vacío, git no incluirá dicho directorio vacío en el repositorio. Así que estaba probando la solución que es agregar un archivo .gitkeep adicional en el directorio para que no esté vacío. Cuando intentaba esa solución, si estaba en el archivo .gitignore, escribía como a continuación:

www
!*.gitkeep

No funciona (mi intención es ignorar todos los contenidos en www pero mantener el directorio). Pero si intento lo siguiente:

www/* 
!*.gitkeep

Entonces funciona! Así que creo que debe tener algunas diferencias entre los dos enfoques.

Respuestas a la pregunta(4)

Su respuesta a la pregunta