¿Cómo puedo eliminar el espacio en blanco final solo en las líneas modificadas en un enganche git precompuesto?

He visto varias soluciones sugeridas, pero casi todas eliminan el espacio en blanco del file completo si se ha cambiado, lo cual no es una opción. También he intentado:

git diff -w --no-color | git apply --cached 

pero tampoco parece funcionar. Estoy usando la versión 1.6.3.1 de git y no puedo actualizarla.

Encontré la respuesta:

 git diff --cached --no-color > stage.diff && git apply --index -R stage.diff && git apply --index --whitespace=fix stage.diff && rm -f stage.diff 

No tengo este script a mano, pero creo que un buen punto de partida es el gancho precompromiso de muestra que se envía con git (antes de convertirlo a diff --check ). Al less solo advierte sobre líneas adicionales.

vista de gitweb de la secuencia de commands previa a la confirmación

Esta pregunta es un poco vieja, pero tengo git ws git rebase --whitespace=fix para git rebase --whitespace=fix

Puede configurar un alias similar ejecutando

 git config --global alias.ws 'rebase --whitespace=fix' 

Eso requerirá cualquier confirmación que no haya realizado aún y volverá a aplicarla después de haber arreglado el espacio en blanco solo en las líneas que ha modificado.