Soy relativamente nuevo en git, utilicé Subversion antes.
Noté que la mayoría de los front-end gráficos de git y los complementos IDE no parecen ser capaces de mostrar el historial de un archivo si el archivo ha sido renombrado. Cuando uso
git log --follow
en la línea de comando, puedo ver todo el registro a través de los nuevos nombres.
Según Linus Torvalds, el interruptor --follow es un deleite "novato SVN", los usuarios serios de git no lo usan:
--follow es un truco total, destinado a satisfacer a los ex usuarios de SVN que nunca supieron nada sobre cosas como la paternidad o buenos gráficos de revisión de todos modos.
No es totalmente fundamental, pero la implementación actual de "--follow" es realmente un proceso rápido de preprocesamiento sujeto a la lógica de revisión de la revisión, en lugar de ser algo realmente integral.
Literalmente fue diseñado como un "SVN noob" complaciente, no como una "verdadera funcionalidad git". La idea era que te alejarías de la mentalidad (rota) de pensar que los cambios de nombre importan en el panorama general.
Mi pregunta : ¿Cómo obtienen los usuarios hardcore de git entre ustedes el historial de un archivo cuando fue renombrado? ¿Cuál es la forma 'real' de hacer esto?
/bin/mv oldfile newfile), pero luego lo hace git add newfile; git rm oldfile, el resultado es indistinguible del de git mv oldfile newfile.
git log --followmejora un poco con git 2.9 (junio de 2016): vea mi respuesta a continuación
--color-movedcuando diff.
git mv oldfile newfileno hace que el cambio de nombre a grabarse en absoluto - es lo mismo que borrar un archivo y añadir otro. git solo resuelve los cambios de nombre y copias del estado del árbol en cada confirmación después del hecho.