Enmedar o corregir mensajes ya comiteados usando amend y rebase

Git ofrece comandos para enmendar mensajes de commits. Entre ellos vamos a destacar los comandos git commit –amend y git rebase y entender cómo trabajan.

Qué ocurre cuando se cambia el mensaje de un commit

  • El texto que escribimos para describir los cambios que hemos realizado forman parte del propio commit.
  • Por lo que si cambiamos el mensaje de un commit, cambiará el identificador del commit y su (SHA1 checksum).
  • Esto quiere decir que se crea un nuevo commit que reemplazará al anterior.

El checksum es un hash generado por el algoritmo de encriptacion SHA1 a 256 bits y que permite a git detectar cualquier cambio realizado en un fichero, para así proteger la integridad de este.

amend

Cuando el commit sólo exista en tu repositorio local y este aún no haya sido enviado al repositorio remoto, podremos ejecutar el comando git commit con el argumento –-amend (enmendar).

De esta manera editaremos el mensaje del último commit realizado y se creará uno nuevo que lo reemplazará.

También podremos incluir otro tipo de información, como pueden ser co-autores del commit.

… ó también podemos incluir otro tipo de información, como la organización o empresa que lo realiza.

Modificando el mensaje del commit más reciente que se ha enviado remotamente

  • Primeramente tendremos que cambiar el mensaje del commit en nuestro repositorio local.
  • Una vez cambiado haremos un git push para enviar los cambios a la rama indicada.

!!! No se recomienda usar –force ya que si trabajas en grupo con tu repositorio remoto posiblemente sobrescribas o elimines cualquier cambio (commit) realizado por tus compañeros. Para ello hacer uso del argumento –force-with-lease

Modificando el mensaje de otros commits ya enviados

Para modificar mensajes de commits ya enviados haremos uso del comando git rebase, que forzará el envío para cambiar la historia del commit.

El el ejemplo estamos indicando que nos muestre los últimos 3 commits confirmados de la rama actual en la que estemos situados.

Para poder reemplazar el mensaje de uno de ellos bastaría con reemplazar pick por reword del commit que necesitemos cambiar.

Y a continuación ya se nos permite cambiar el mensaje del commit marcado con reword.

Por último forzamos el envío de los commits que hemos corregido.

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.