Git incluye para cada confirmación una copia completa de todos los archivos, excepto que, para el contenido ya presente en el repositorio de Git, la instantánea simplemente apuntará a dicho contenido en lugar de duplicarlo.
Eso también significa que varios archivos con el mismo contenido se almacenan solo una vez.
Entonces, una instantánea es básicamente una confirmación, que se refiere al contenido de una estructura de directorio.
Algunas buenas referencias son:
Le dice a Git que desea guardar una instantánea de su proyecto con el comando git commit y básicamente registra un manifiesto de cómo se ven todos los archivos en su proyecto en ese momento
El laboratorio 12 ilustra cómo obtener instantáneas anteriores
El libro progit tiene la descripción más completa de una instantánea:
La principal diferencia entre Git y cualquier otro VCS (Subversion y amigos incluidos) es la forma en que Git piensa acerca de sus datos.
Conceptualmente, la mayoría de los otros sistemas almacenan información como una lista de cambios basados en archivos. Estos sistemas (CVS, Subversion, Perforce, Bazaar, etc.) piensan en la información que mantienen como un conjunto de archivos y los cambios realizados en cada archivo a lo largo del tiempo.

Git no piensa ni almacena sus datos de esta manera. En cambio, Git piensa en sus datos más como un conjunto de instantáneas de un mini sistema de archivos.
Cada vez que confirma o guarda el estado de su proyecto en Git, básicamente toma una fotografía de cómo se ven todos sus archivos en ese momento y almacena una referencia a esa instantánea.
Para ser eficiente, si los archivos no han cambiado, Git no almacena el archivo nuevamente, solo un enlace al archivo idéntico anterior que ya ha almacenado.
Git piensa en sus datos más como a continuación:

Esta es una distinción importante entre Git y casi todos los demás VCS. Hace que Git reconsidere casi todos los aspectos del control de versiones que la mayoría de los otros sistemas copiaron de la generación anterior. Esto hace que Git se parezca más a un mini sistema de archivos con algunas herramientas increíblemente poderosas construidas sobre él, en lugar de simplemente un VCS.
Jan Hudec agrega este importante comentario :
Si bien eso es cierto e importante en el nivel conceptual, NO es cierto en el nivel de almacenamiento.
Git usa deltas para el almacenamiento .
No solo eso, sino que es más eficiente que cualquier otro sistema. Debido a que no mantiene el historial por archivo, cuando quiere hacer una compresión delta, toma cada blob, selecciona algunos blobs que probablemente sean similares (usando la heurística que incluye la aproximación más cercana de la versión anterior y algunas otras), intenta generar los deltas y elige el más pequeño. De esta forma, puede (a menudo, depende de la heurística) aprovechar otros archivos similares o versiones anteriores que son más similares a las anteriores. El parámetro "ventana de paquete" permite el rendimiento comercial para la calidad de compresión delta. El valor predeterminado (10) generalmente proporciona resultados decentes, pero cuando el espacio es limitado o para acelerar las transferencias de red, git gc --aggressiveutiliza el valor 250, lo que hace que funcione muy lento, pero proporciona una compresión adicional para los datos del historial.