remove - git tag best practices
Compromiso de Git que no anula a los autores originales en culpa de Git (2)
Gracias a wnoise en git: ¿cambiar el estilo (espacios en blanco) sin cambiar de propietario / culpa? , Se me ocurrió esto para ejecutar un filtro arbitrario en el historial de git, por lo que si lo usas, puedes volver a escribir el historial para que parezca que nunca se cometieron espacios en blanco u otros problemas, dejando a los autores originales intactos pero tu código limpiado: git filter-branch --tree-filter ''git diff-tree --name-only --diff-filter=AM -r --no-commit-id $GIT_COMMIT | php cleanup.php'' HEAD
git filter-branch --tree-filter ''git diff-tree --name-only --diff-filter=AM -r --no-commit-id $GIT_COMMIT | php cleanup.php'' HEAD
He usado una secuencia de comandos de Perl para modificar todos los caracteres de tabulación en un repositorio de php git y los he cambiado a 4 espacios.
$ find -iname /*.php -exec perl -pi -e "s//t/ /g" {} /
Puedo realizar este cambio con git commit
, pero me marcará como el autor de todas las líneas cambiadas dentro de git blame
después de que se realice este compromiso.
¿Hay alguna forma de cometer este cambio masivo que no me marque como el autor de las líneas cambiadas, sino que retenga al autor original? Eso es mucha historia que realmente no queremos perder en nuestro proyecto.
Nuestro propósito al reemplazar las pestañas con 4 espacios no es hacer que las cosas parezcan diferentes en la culpa, sino seguir los estándares de codificación de PEAR adecuados. Por ejemplo, sin pestañas, use 4 espacios para la sangría.
No es responsabilidad del comando cometer decidir cómo tratar los espacios en blanco, sino la responsabilidad del comando culpar porque es la culpa la que analiza las diferencias entre las versiones para obtener el autor de cada línea. Entonces, buscando una opción para ignorar los espacios en blanco a los que tenemos la culpa :
La opción -w se define como: "Ignorar los espacios en blanco al comparar la versión del padre y el del niño para encontrar de dónde provienen las líneas". http://kernel.org/pub/software/scm/git/docs/git-blame.html