2011-08-06 13 views
10

git novato aquí, tengan paciencia conmigo si esto es trivial. No puedo encontrar esto en algunos documentos básicos vistos hasta ahora.Cambios posteriores en el archivo después de "agregar git"

Hice un "git add file1" que coloca el archivo en el índice. Inmediatamente después, el "git diff --cahced" muestra el contenido correcto de la diferencia.

Luego hice algunos cambios más en el archivo1. Ahora "git diff --cached" muestra el contenido del diff mostrado anteriormente, y no se muestran nuevos cambios. Esto me hace creer que el índice está teniendo la instantánea del contenido del archivo1 cuando hice el "git add", en otras palabras, cuando monté el archivo.

¿Es esto correcto? ¿Y la subsiguiente confirmación solo comprometerá lo que me muestra "git diff -cached", o todos mis cambios hasta que se emita la confirmación?

+0

Estaba en el trabajo cuando me di cuenta de esto y estaba pensando en aclararme a mí mismo de la documentación sobre el wkend. Lo intentaré la próxima vez. –

Respuesta

5

Ese es todo el punto del índice: contiene los cambios que se deben comprometer. Si no usa -a, git commit creará una confirmación cuyo contenido (el árbol) será lo que estaba en el índice.

Lo que hace git add es que copia el archivo (o directorio) de la copia de trabajo en el índice.

Una forma en que esto puede ser útil es git add -p: le permite ver los cambios en un archivo y agrega una versión del archivo con solo los cambios que eligió para el índice.

+2

"Lo que hace git add es que se copia el archivo" - ah, mi idea en 'git add' fue que agrega el archivo a la lista de archivos que se deben enviar. ¡Gracias por la aclaración! Ahora tengo una mejor imagen del área de trabajo frente al área de ensayo. –

Cuestiones relacionadas