El comando git blame
es una herramienta poderosa al alcance de los desarrolladores, que permite saber con exactitud quién hizo qué y cuándo. Entre su cúmulo de potencialidades, además de mostrar la autoría, git blame
puede exhibir el commit en el que cada línea de un archivo fue modificada por última vez.
git blame
se convierte en una función sumamente útil a la hora de querer observar el historial de cambios de un archivo y atribuir cada cambio a su respectivo autor. Todos estos datos resultan fundamentales para entender la evolución de un proyecto y contribuir a él de manera eficiente.
Por ejemplo, el comando:
git blame miarchivo.txt
nos proporcionará, línea por línea, el hash del último commit que realizó cambios en ella, el nombre del autor del cambio, la fecha en que se realizó el cambio y la línea en sí misma.
Las salidas de git blame
suelen tener este formato:
^fc6c95f (Autor del cambio 2019-11-13 13:23:24 -0500 1) Esta es la primera línea de texto
252a9228 (Otro autor 2019-07-24 09:34:12 -0300 2) Esta es la segunda línea de texto
Así, git blame
pone en contexto cada línea de código, y nos indica cuál fue el último cambio realizado en ella, quién lo hizo y cuándo. Esto es particularmente útil para rastrear el origen de una línea de código problemática o verificar qué cambios se hicieron antes de una versión específica del archivo.
Es relevante señalar que git blame
no muestra todo el historial de los commits del archivo (para eso disponemos de git log
), no muestra el tamaño de cada cambio en el archivo, ni el número de veces que se modificó el archivo y mucho menos las modificaciones planificadas para el futuro. Su uso es mucho más preciso y se enfoca en la atribución de cambios de cada línea en un archivo específico.
En conclusión, git blame
es una herramienta fundamental en cualquier flujo de trabajo de Git, aportando claridad, seguimiento y transparencia al historial de cambios de los archivos de un proyecto. Además de mostrar la clásica autoría, resume de manera inequívoca cuál fue el último commit que modificó cada línea de un archivo.