git - diferencia de los cambios actuales antes de confirmar

106

He cambiado varios archivos en un repositorio de git, pero aún no los he comprometido.

Puedo obtener una lista de los cambios con solo invocar git status. Pero, ¿cómo obtengo una lista de las líneas? o el contenido que he cambiado, además de los nombres de archivo?

Inicialmente pensé en usar git diff , pero parece ser útil solo para comparar cambios ya confirmados.

Por lo general, solo lo hago meld ., pero en este caso estoy conectado a un servidor externo a través de ssh.

kikito
fuente

Respuestas:

153

git diffpor defecto muestra la diferencia entre su directorio de trabajo y el índice ( área de preparación para la próxima confirmación).

Si ya ha agregado ( organizado ) los cambios en el área de preparación , git diff --stagedhace el trabajo. El área de ensayo son los datos a partir de los cuales se formará la próxima confirmación git commit.

PD Buena lectura (IMO) para principiantes de Git:

Mischa Arefiev
fuente
¿No se aplica por etapas solo a los archivos que aún no se han agregado? Pensé que tenías que usar la bandera en caché.
pbond
4
@peterbond man git-diffdice--staged is a synonym of --cached
Mischa Arefiev
2
@peterbond Técnicamente escenificado significa agregado al área de preparación que aún no es un compromiso. Lo he aclarado en la edición.
Mischa Arefiev
1
@Mischa La documentación dice que el comportamiento predeterminado para git diffes calcular la diferencia entre el directorio de trabajo y el índice , noHEAD
Axel
No se me ocurrió invocar git diff sin parámetros. ¡Gracias!
kikito
10

Lo que uso para tales casos es:

git diff HEAD *

Esto mostrará los cambios desde la última confirmación. Aunque de alguna manera funciona más rápido con

git diff .

o

git diff

Para ver los cambios en git addarchivos editados anteriormente , use la stagedbandera:

git diff --staged
EliuX
fuente