Tenemos una base de código masiva y antigua que necesita mucha limpieza. Siempre hemos tenido estándares de codificación y todos siempre han intentado seguirlos, pero no se aplicaron, por lo que con el tiempo se han introducido muchas violaciones. Muchos de ellos son solo problemas de espacio en blanco, como el uso de pestañas en lugar de espacios o espacios donde hay no debería ser ninguno, o espacios faltantes donde deberían estar. Vamos a empezar a aplicar activamente nuestros estándares de codificación para asegurarnos de que no se presenten más infracciones, pero es difícil aplicarlos de manera automatizada solo en los cambios, por lo que sería bueno limpiar estos archivos antiguos.git: cambiar el estilo (espacios en blanco) sin cambiar la propiedad/culpa?
Existen herramientas que pueden automatizar la solución de estos problemas, sin embargo, si hago eso, entonces la culpa me mostrará como el propietario de esas líneas, cuando en realidad quizás nunca las haya visto. Sé que hay un entorno para hacer que la culpa ignore los cambios en el espacio en blanco, pero no puedo hacer que todos usen la culpa de la misma manera, incluidas otras herramientas visuales y cosas como gitstats. En un mundo ideal, habría alguna forma de reescribir la historia para que pareciera que nunca se introdujeron las violaciones, sin encubrir quién introdujo el código real, pero no puedo encontrar nada de eso.
El historial de reescritura es un poco incómodo: una vez que cambie las confirmaciones, otras tendrán que recoger esos cambios. No es parte de un flujo de trabajo ideal. Es posible que desee estudiar la aplicación de sus estándares de codificación mediante el uso de ganchos.Puedes usar un gancho de actualización para hacer la ejecución final cuando presionas a un repositorio central, y puedes darles a los desarrolladores un gancho precompromiso para hacer la misma validación para ellos, e incluso arreglarlo automáticamente si es seguro hacerlo. (Si quiere arreglar lo que ya está allí, lo haría en una única confirmación, sin necesidad de pasar por el dolor de cabeza de reescribir todo el historial.) – Cascabel
posible duplicación de [Git commit que no anula a los autores originales en git culpa] (http://stackoverflow.com/questions/3945382/git-commit-that-doesnt-override-original-authors-in-git-blame) –
No creo que esto sea exactamente un duplicado de esa pregunta . En mi pregunta, expresé específicamente que cambiar los indicadores de culpa no es adecuado, y la respuesta aceptada a esa pregunta es exactamente eso. –