[ad_1]
Hacer algo incorrecto accidentalmente es muy común cuando se trabaja con Git, pero afortunadamente está diseñado para realizar un seguimiento del historial de versiones de su repositorio. Siempre hay una manera de deshacer los cambios que ha realizado, y si desea deshacer una combinación de Git, es bastante fácil.
Deshacer combinación de Git
Básicamente, hay dos formas de hacer esto, y todo depende de si ya ha realizado los cambios en su control de código fuente o no. Si ya se comprometió con un servicio como GitHub, generalmente se considera inmutable a menos que quiera forzar un impulso, lo cual es peligroso. Nunca desea «eliminar» confirmaciones, y las fusiones de git se agregan como «confirmaciones de fusión». querrás usar git revert
para deshacer de forma segura los cambios y confirmar ese deshacer como una nueva confirmación.
Sin embargo, si acaba de estropear algo localmente, maldijo su teclado y buscó una solución en Google, aún puede eliminar de forma segura la confirmación de combinación y mantener limpio su historial de Git con un simple git reset
.
Restablecimiento local
Lo más fácil y seguro es sí maneja reinicios de Git con un cliente GUI Git, donde podrás ver fácilmente el historial de sucursales. No es necesario, por supuesto, pero lo visual ayuda cuando tienes ramas complejas.
En este ejemplo, queremos separar la rama de función en la rama maestra. Dado que la rama de características en realidad no se ha tocado, queremos restablecer la etiqueta de la rama «maestra» para que apunte a la última confirmación.
Para ello, queremos git checkout
la rama maestra, luego reinicie a la confirmación anterior. La abreviatura de esto es HEAD^ y podemos hacer un restablecimiento completo a la última confirmación. Si no se siente cómodo con un restablecimiento «destructivo», puede hacer un restablecimiento parcial y luego descartar manualmente los cambios combinados.
git reset --hard HEAD^
Como puede ver, esto elimina por completo la confirmación de fusión y deja intacta la rama de funciones.
Si la confirmación a la que necesita restablecer no es la última antes del HEAD actual de la rama, simplemente puede copiar el ID de SHA1 y restablecer esa confirmación en particular.
Devolver un commit que ya ha sido enviado
Desafortunadamente, si ya presionó, no hay forma de eliminar la confirmación de combinación sin sobrescribir el historial de su repositorio. Puede hacer los mismos pasos que se muestran arriba y enviar al repositorio ascendente (como GitHub) con --force
bandera. Pero esto generalmente se considera disruptivo y peligroso cuando tiene varios colaboradores, ya que todos necesitarán actualizar sus repositorios locales.
La otra forma de deshacer confirmaciones en Git es revertirlas. Una reversión de confirmación aplicará los cambios opuestos al repositorio: por cada fila agregada, esa fila se elimina. Para todo lo eliminado, se vuelve a agregar, y así sucesivamente. Esto revierte efectivamente la confirmación, con la desventaja de que este proceso desordenará un poco su historial de versiones. En general, sin embargo, esta es una buena práctica para la inversión de errores.
Devolver un compromiso es bastante simple. Primero, tendrás que correr git log
para obtener una lista de compromisos y sus números de identificación.
A continuación, puede copiar el hash SHA1 y devolver la confirmación con git revert
:
git revert 62ff517cc7c358eaf0bffdebbbe1b38dea92ba0f
Deberá enviar este nuevo «commit back» a GitHub para solucionar el problema.
[ad_2]
Créditos: Anthony Heddings (How-To Geek)
¡¡Si te ha gustado el post compártelo en tus redes sociales para que llegue a más gente!!