¿Una confirmación en Git representa el estado de un repository?

Como lo había entendido, cuando haces un commit en Git, se hace una instantánea de todo el estado del repository y eso me permite volver a ese estado cuando sea necesario. Entonces, para mí, un compromiso no representa un cambio, sino un estado de un repository. Cuando desee volver a un estado antiguo, puede hacer la git checkout commit-hash

Sin embargo, no entiendo lo que sucede cuando haces una cherry-pick , porque solo obtiene el cambio realizado por ese compromiso.

¿Cómo puede Git get la diferencia entre dos commits durante un cherry-pick si un commit representa un estado de un repository completo ?

Su comprensión es correcta: un "compromiso" es que git no es un cambio (delta), sino que representa todo el estado. Pero una confirmación contiene algo más que el estado: también tiene un puntero a una confirmación principal (normalmente una, pero puede ser cualquier número), es decir, la confirmación anterior en el historial del repository.

El puntero padre le permite a git descubrir las diferencias entre la confirmación actual y su padre. Esto es lo que hace cherry-pick: calcula la diferencia, luego aplica solo esas diferencias al estado actual.