¿Cómo puedo encontrar líneas adicionales (sin cambiar) usando git diff?

Tengo un file de text de logging de cambios en un proyecto. Quiero get una list de cambios de este file entre 2 tags. Preparé este command:

git diff tag1..tag2 file | grep -v -e "+++ b/file" -e "@@" | grep "+" 

Como salida, recibo todas las líneas marcadas como agregadas (comenzando con + ). Pero entre ellos podría haber algunas líneas que existían anteriormente, pero modificadas entre las tags mencionadas (por ejemplo, errores ortocharts corregidos). ¿Hay alguna opción que permita filtrar solo líneas nuevas o solo líneas modificadas? ¿O tal vez cualquier opción que permita controlar el% de condición de la modificación de la línea se imprimirá en la salida?

Git no hace esto por sí mismo, y es un problema difícil en general, si le importa la semántica en lugar de la syntax simple. Sin embargo, Git viene con un filter de post-procesamiento llamado diff-highlight . El código dentro de este script de Perl tiene el tipo de análisis de syntax que le interesa, por lo que podría modificarse para producir lo que desee.

Consulte https://github.com/git/git/tree/master/contrib/diff-highlight para ver la fuente en diff-highlight. Lea el file README para ver sus notas sobre los problemas semánticos involucrados en este tipo de análisis. Tenga en count que a partir de la versión 2.9 de Git , la secuencia de commands resaltada se instala con el rest de Git, para que no tenga que pescar fuera del área de fonts contribuidas.

Desafortunadamente, no pude encontrar ninguna respuesta satisfactoria (ni aquí ni en ningún otro lado), así que tuve que escribir el guión necesario.