¿Cuál es la diferencia entre el repository local y el índice?

¿Cuál es la diferencia entre el git add y el git commit en palabras simples?

En "palabras simples", git add files de marcas para ser agregados / cambiados / eliminados por tu próximo git commit , que finaliza esos cambios en un compromiso, agregando al historial de tu repository.

Cuando los files están marcados para ser modificados, se agregan al file de índice / área de ensayo, que es como tomar una foto / instantánea del estado de su copy de trabajo.

git commit hace que esos cambios sean "permanentes", aunque con Git, los commits no son tan "permanentes" como lo son en los sistemas de control de fuente más tradicionales.

Esa es la respuesta simple de alto nivel.

Creo que la mejor analogía que puedes hacer es que el índice es un área de preparación. git add (o git add -p ) actualiza el contenido en el índice y git commit creará una confirmación a partir del contenido en el índice.

Andrew Peterson de NDP Software hizo una excelente descripción de cómo los commands afectan las distintas etapas de git en su Cheatsheet de Visual Git . Puede interactuar con la hoja de trucos y ver cómo los diversos commands mueven los cambios desde su área de trabajo, al índice, al repository local, etc.