¿Cómo identifica realmente git diff las líneas que se eliminan?

Por ejemplo, como la diferencia que se muestra aquí , ¿cómo identifica git con precisión que la línea no 86 ha sido eliminada de TemplateManagerInitializer.java ? Primero pensé que era de @@ -83,7 +97,6 @@ notación que el número de líneas en el file anterior (7) es mayor que el file actual (6) por lo que se eliminó una línea entre las relevantes distancia. Pero a veces puede haber situaciones en las que se eliminaron las 7 líneas del file antiguo y se agregaron 6 líneas completamente nuevas. Entonces, ¿alguien puede explicarme cómo se hace un seguimiento de las líneas reales y se agrega en un file? Gracias por adelantado

La línea que se elimina está allí con el prefijo - , por lo que la herramienta de aplicación sabe exactamente qué línea eliminar y puede verificar las líneas de context y la especificación del range para asegurarse de que sea la correcta.