Mi commit de Git favorito (2019)
(dhwthompson.com)Mi commit de Git favorito
- Se enfatiza la importancia de los mensajes de commit de Git, y se considera que son una de las herramientas más poderosas para documentar una base de código.
- Se explica por qué usando como ejemplo un commit escrito por el desarrollador Dan Carley titulado "Convert template to US-ASCII to fix error".
- Con base en la experiencia en GDS (Government Digital Service), se señala que una de las ventajas de programar en público es que estos ejemplos también pueden compartirse fuera de la organización.
Por qué este commit es bueno
- La proporción entre el mensaje del commit y los cambios en el código es curiosa, pero esa no es la razón por la que se considera valioso compartirlo.
- En otra organización o por parte de otro desarrollador, este mensaje de commit podría haberse resumido simplemente como
change whitespaceofix bug. - En cambio, Dan dedicó tiempo a crear un mensaje de commit realmente útil para quienes lo rodean.
Explica la razón del cambio
- Los mejores mensajes de commit explican no solo qué se cambió, sino también por qué se cambió.
- En este commit, se detalla por qué la prueba introducida para hacer coincidir el contenido de
/etc/nginx/router_routes.conffallaba con el errorArgumentError: invalid byte sequence in US-ASCIIal ejecutarse conbundle exec rake. - Este tipo de información es muy valiosa para documentar, y puede perderse fácilmente cuando la gente olvida el contexto original o cambia de equipo y deja la organización.
Es fácil de buscar
- La primera parte del mensaje de commit contiene el mensaje de error que provocó el cambio, por lo que cualquiera puede buscar ese error en la base de código ejecutando
git log --grep "invalid byte sequence"o usando la búsqueda de commits de GitHub. - De hecho, varias personas pudieron buscar este problema y averiguar quién lo había encontrado antes y cómo lo había abordado.
Cuenta una historia
- El mensaje de commit contiene detalles sobre cómo se veía el problema, cómo fue el proceso de investigación y cómo se resolvió.
- Los mensajes de commit no son solo adecuados para documentar archivos, funciones o líneas de código específicas, sino que también son excelentes para documentar información adicional sobre el recorrido que ha vivido la base de código.
Hace que todos sean un poco más inteligentes
- El hecho de que Dan documentara los comandos que ejecutó en cada etapa puede ser una forma ligera de compartir conocimiento dentro del equipo.
- Al leer este mensaje de commit, alguien puede aprender algunos consejos útiles sobre el conjunto de herramientas de Unix.
- Tanto quien revise este cambio como quien encuentre este commit más adelante puede aprender esas cosas.
Construye empatía y confianza
- El último párrafo agrega un contexto humano.
- Al leerlo, puedes sentir la frustración de Dan por haber pasado una hora rastreando un bug escurridizo, así como la satisfacción de haberlo resuelto.
- Este tipo de mensajes de commit ayuda a recordar que detrás de cada cambio hay una persona que tomó la mejor decisión posible.
La importancia de un buen commit
- Este ejemplo es un caso extremo, y no se espera que todos los commits tengan este nivel de detalle.
- Sin embargo, es un gran ejemplo de cómo explicar el contexto detrás de un cambio, ayudar a que otros aprendan y contribuir al modelo mental colectivo del equipo sobre la base de código.
- Si quieres saber más sobre los beneficios de los buenos mensajes de commit y sobre herramientas que ayudan a estructurarlos con mayor facilidad, se recomiendan "Telling stories through your commits" de Joel Chippindale y "A branch in time" de Tekin Süleyman.
Opinión de GN⁺
- Este artículo destaca la importancia de los mensajes de commit de Git y muestra lo poderosos que pueden ser como herramienta para documentar la historia de una base de código y compartir conocimiento.
- El mensaje de commit de Dan Carley presenta un caso ejemplar en varios aspectos, como la razón del cambio, la facilidad de búsqueda, la narrativa, el intercambio de conocimiento y la construcción de empatía y confianza.
- Al comprender y poner en práctica la importancia de escribir buenos mensajes de commit, los desarrolladores pueden experimentar una mejor colaboración y mantenimiento del código, lo que puede contribuir a mejorar la productividad y eficiencia de todo el equipo.
1 comentarios
Opiniones en Hacker News
Opinión del cofundador de GitHub:
git blame.Importancia de los mensajes de commit para problemas específicos:
Sentimientos personales sobre los mensajes de commit:
Estrategia para escribir la primera línea del mensaje de commit:
git log, la primera línea es lo más importante.Dificultad para modificar mensajes de commit:
.md, wikis o Confluence se pueden editar fácilmente.Importancia de explicaciones detalladas en commits pequeños:
Limitaciones de los mensajes de commit y problemas de las herramientas:
Importancia de la higiene de commits por encima del mensaje de commit:
Críticas al autosquash y al rebase: