[Git] Cambiando mensajes de commits anteriores
Sobreescribiendo commit anterior
Una de las utilidades que uso muy seguido al querer hacer un pequeño cambio que me olvidé hacer en el último commit es:
git commit --amendEste comando me deja pisar el último commit que realicé con uno nuevo. Ya sea para agregar algún cambio, o si simplemente quiero cambiar el mensaje de ese commit. Si todavía no hice un push de los cambios eso es todo, si por el contrario ya lo realizamos, vamos a tener que forzarlo haciendo:
git push --force¿Y si quiero cambiar los mensajes de los últimos 3 commits?
En mi caso, me había confundido con el número de issue al que hacía referencia en el mensaje de los últimos 3 commits. Esto lo pude corregir haciendo uso de rebase de la siguiente forma:
git rebase -i HEAD~4Nos da un listado con los últimos 4 commits, con la siguiente pinta:
pick 12039uh No me importa
pick f809asd Alto 3er commit
pick blj0800 Mi super commit 2
pick m24bjk1 EL commitCambiamos el pick por reword sobre los commits cuyos mensajes queremos modificar, para que quede así:
pick 12039uh No me importa
reword f809asd Alto 3er commit
reword blj0800 Mi super commit 2
reword m24bjk1 EL commitGuardamos, y en cada commit podemos cambiar el mensaje. Después hacemos un git push -f. Y así podemos cambiar varios mensajes de commits anteriores.
Nota: recomiendo leer más sobre git rebase ya que deja hacer más acciones sobre nuestros commits anteriores. Quizás más adelante escriba más sobre el tema.