El objetivo de mantener el historial de los cambios en un proyecto con git no es señalar con el dedo al desarrollador que cometió un error. Y menos aún se trata de burlarse del autor. Entonces, ¿por qué te importaría que aparezca esta corrección de errores de menor importancia en tu historial de git?


Generalmente, debes mantener limpio tu historial de git. ¿Con qué frecuencia se tiene que corregir un error en una función que ha sido creada por otra persona hace 6 meses? ¿No te gustaría poder realizar un seguimiento de los cambios fácilmente gracias a un historial limpio y mensajes de commits significativos? Desafortunadamente, también sucede que el merge de un pull request causa algún mal funcionamiento inesperadamente. Un historial limpio nos permite encontrar el último commit en funcionamiento y volver a el sin revertir los cambios útiles. En esos momentos, no querrá tener que desplazarse por un montón de mensajes como: “corregir typo” y “revertir commits anterior”.

Como cambiar el ultimo commit

Si solo queremos corregir el mensaje del ultimo commit podemos hacer:


git commit --amend

Se abrirá el mensaje del commit en un editor de texto. Aqui podemos editar el mensaje, guardar y cerrar el editor, y el mensaje se actualizará.


También puede usar esto para realizar cambios reales en el contenido del commit, o para agregar o eliminar archivos. Haz los cambios que quieras hacer, luego usa git add o git rm. luego enviamos el commit con la opción de enmendar como se muestra anteriormente y el cambio será aplicado al historial.

Cambiar commits anteriores

Git no tiene una herramienta para modificar el historial, pero puedes usar rebase. rebase se usa normalmente para integrar cambios de una rama a otra, pero se puede usar para reajustar los commits desde el HEAD. Usando la opción -i (que significa interactivo) se muestran los commits y podemos decidir las acciones para realizar en ellos.


Primero tienes que decir qué commits quieres rebasar. Tienes diferentes opciones.

Seleccionar los commits

Podemos usar el has del commit principal. El commit que tiene este hash no se mostrará, si no que solo los siguientes.


git rebase --i 902c1b4b72db5bc012bb3da634073f8486c8b77b

Si también quiere mostrar el commit principal usamos el carácter ^ para indicarlo.


git rebase --i 902c1b4b72db5bc012bb3da634073f8486c8b77b^

También se puede hacer referencia al commit principal por su distancia a HEAD. Una vez más, la confirmación principal no se muestra, en este ejemplo, solo verá HEAD y la primera confirmación antes de HEAD.


git rebase --i HEAD~2

Si desea ver HEAD y dos commits antes de HEAD, use ^


git rebase --i HEAD~2^

Pruebe una de estas opciones en uno de sus proyectos. Debería ver sus commits y alguna documentación que le explique lo que puede hacer.

De forma predeterminada, eliges tus commits. pick solo usa la commits, por lo que si cierra el editor sin cambiar nada, no se cambiará nada. Como puede ver, puede aplicar algunos cambios a sus commits. Éstos son los más útiles.

Categorized in:

Tagged in:

, ,