Portada por fretz.mx

¿Cómo añadir cambios al último commit?

Luis Burgos
2 min readNov 30, 2020

A todos nos ha pasado, recién hicimos commit con nuestros cambios pero…

  • Olvidamos añadir un archivo.
  • Nos dimos cuenta de un typo en el código y queremos repararlo.
  • Hicimos un cambio que debe ser parte del último commit.
  • O a veces, todas las anteriores.

Para todos estos casos, solo tendríamos que hacer lo siguiente:

git add .  #Or any specific file(s)git commit --amend --no-edit

Y listo, todos los archivos que nos hicieron falta ahora son parte del último commit en nuestra rama actual. Ahora nos queda subir nuestros cambios, pero primero…

¡Un dato de vital importancia!

La bandera --amend utilizada en el comando anterior, cambia el short SHA-1 de nuestro último commit. Git interpretará esto como una “historia” (rama) diferente, ya que el short SHA-1 es el principal distintivo.

No importa si el nombre de la rama o el mensaje de nuestro commit no hayan cambiado, luego de ejecutar el comando el hash habrá cambiado.

Por lo tanto, si ya habías hecho push de tus cambios hacia el repositorio remoto, dado que la historia cambió luego de realizar el amend, el remote te va a rechazar los cambios.

Uff, que escena. Fuente del GIF.

Aquí es cuando el push --force se vuelve nuestra opción principal. Entonces nuestra solución ahora se convierte en:

git add .  #Or any specific file(s)git commit --amend --no-editgit push origin --force <my-branch-name>

Los mismos dos pasos del inicio, con un paso extra. Ahora…

¿El push force es una mala práctica?

Para esta pregunta, como muchas otras en el mundo de la tecnología, la respuesta es: depende. Usar push --force es una acción que debemos realizar a conciencia, entendiendo resultados que genera este comando.

En el caso donde estemos afectando una rama colaborativa o default (como master o develop) recomendaría tener mucho cuidado y comunicación con tu equipo al respecto.

Bastante obvio, ¿no? Fuente del GIF.

Proactivos, no reactivos

Como vimos, la combinación anterior de comandos nos ayuda en situaciones donde tenemos que ser “reactivos” a situaciones inesperadas. Pero, ¿cómo podemos activamente evitar estos escenarios?

Es sencillo, cultivando y mejorando nuestro proceso personal usando Git.

Para lo anterior siempre recomiendo un artículo de Chris Beams, donde detalla buenas prácticas y consideraciones para escribir buenos mensajes de commit. Seguro obtienes otro par de trucos de la lectura.

Te dejo mi twitter, a veces comparto pensamientos sobre desarrollo de software. Agradecimientos a fretz.mx por crear la increíble portada de esta ocasión!

Sign up to discover human stories that deepen your understanding of the world.

Luis Burgos
Luis Burgos

No responses yet

What are your thoughts?