Usar git diff desde la consola siempre ha sido una operación muy compacta y a veces los mensajes son algo crípticos . Vamos a explicar este comando a detalle para poder ver como funciona. Imaginemonos que tenemos el fichero3.txt
hola1 hola2 hola3 hola4 hola5 hola6
se trata de un fichero de texto muy sencillo con 6 mensajes de hola. Vamos a modificar un mensaje de hola6 a adios .
hola1 hola2 hola3 hola4 hola5 adios
Solicitamos un git diff:
Lo primero que vemos es que al fichero viejo le denomina a y al fichero nuevo b
Una vez tenemos esto muy claro lo siguiente que nos dice es que los simbolos de – estan ligados al fichero viejo y los simbolos de + estan ligados al fichero nuevo.
--- a/fichero3.txt +++ b/fichero3.txt
Esto es algo también importante de entender . Es momento de empezar a revisar las diferencias . En este caso las diferencias se dibujan así:
Esto quiere decir que el viejo fichero tiene una linea afectada que es la linea del hola6 y el fichero nuevo pues tiene una nueva linea que se denomina adios. Hasta aquí todo muy claro . Ahora en lo que tenemos mas dudas es en los numeros -3,4 +3,4 .
En este caso nos dice que es a partir de la linea 3 que estamos mostrando y que a partir de esa linea se muestran 4 lineas adicionales. De esta manera podemos entender que es la linea del hola 6 la que cambia por adios ya que la linea hola6 contiene un menos (-) que nos dice que es del fichero viejo y la linea adios contiene un (+) del nuevo fichero.
Vamos a ver una segunda versión parecida del fichero partiendo de esta situación inicial:
hola1 hola2 hola3 hola4 hola5 hola6 hola7 hola8 hola9 hola10 hola11
Pero teniendo esta situación final:
adios hola2 hola3 hola4 hola5 hola6 hola7 hola8 hola9 adios hola11
En este caso nos dice que desde la linea 1 se muestran 4 lineas con sus diferencias tanto del fichero viejo como del nuevo y vemos como un hola1 esta en el viejo y un adios esta en el nuevo. Una vez hecho esto git se da cuenta que existe otro bloque de diferencias que empieza en la linea del hola7 y que nos muestra 5 lineas con los holas del fichero viejo y el adios del nuevo.
Es de esta forma con la cual git trabaja con sus bloques de diferencias o hunks