¿Cómo ejecuto un formateador de código sobre mi fuente sin modificar el historial de git?

Estoy tratando de formatear un repositorio completo usando una herramienta de formateador de código. Al hacerlo, quiero mantener información sobre quién comprometió qué línea, para que los comandos comogit blame todavía muestra la información correcta. Con esto, quiero decir que debería mostrar al autor que editó previamente cada línea (antes de formatearla).

Hay el comando git filter-branch que le permite ejecutar un comando contra cada revisión del repositorio desde el principio de los tiempos.

git filter-branch --tree-filter '\
  npx prettier --write "src/main/web/app/**/**.{js, jsx}" || \
  echo "Error: no JS files found or invalid syntax"' \
  -- --all

Me llevará una eternidad ejecutar esto y realmente no me importa el pasado. Solo quiero formatear la rama maestra en el futuro sin cambiar la propiedad de cada línea. ¿Cómo puedo hacer esto? Traté de jugar con elrev-list al final y otros tipos de filtro, pero aún no funciona. Debe haber una forma de formatear la base de código mientras se conserva la información del autor para cada línea.

Respuestas a la pregunta(2)

Su respuesta a la pregunta