Confirmaciones de Squash que ya están insertadas en Git

John Wachira 15 febrero 2024
Confirmaciones de Squash que ya están insertadas en Git

Este artículo describe el proceso de aplastamiento de confirmaciones que ya hemos enviado al repositorio remoto. Aplastamos las confirmaciones en una sola para reducir el desorden en nuestro repositorio.

Para aplastar las confirmaciones, ejecutamos un git rebase en el modo interactivo.

Confirmaciones de Squash que ya están insertadas en Git

Para facilitar el contexto, simularemos un escenario en el que necesitamos aplastar algunas confirmaciones en una después de impulsar los cambios.

Primero, enviaremos nuestros cambios actuales al repositorio remoto.

$ git push origin Dev2.1

Este comando enviará todos los cambios a nuestra rama remota Dev2.1.

Podemos ejecutar el comando git rebase hasta el quinto compromiso.

$ git rebase -i HEAD~5

Producción:

git rebase

Para aplastar nuestras confirmaciones, reemplazaremos pick con squash al comienzo de las confirmaciones y finalizaremos el rebase.

Podemos ejecutar el comando git log para ver nuestro historial de confirmaciones.

registro de git

Intentar empujar resultará en un error, como se muestra a continuación.

error

El error se explica por sí mismo; no nos detendremos mucho en eso.

Necesitamos forzar un empujón, no con la bandera --force sino como se muestra a continuación.

$ git push origin +Dev2.1

Producción:

git push origen

Echemos un vistazo rápido al repositorio remoto en GitHub.

repositorio remoto en GitHub

Usamos el + antes de refspec para forzar un impulso, en nuestro caso, a la rama Dev2.1.

En conclusión, después de aplastar las confirmaciones que ya ha enviado al control remoto, un git push normal no le servirá de nada.

Estarás atrapado en un bucle molesto en el que Git requiere que tire antes de empujar. Agregar el + antes de su rama en el comando git push origin resuelve el problema.

John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Artículo relacionado - Git Squash