Héroe de GitHub

[ad_1]

Héroe de GitHub

¿Cansado de los historiales de confirmación desordenados que saturan sus repositorios de Git y solicitudes de extracción? Afortunadamente, Git tiene la capacidad de «apretar confirmaciones», lo que fusiona varias confirmaciones pequeñas en una sola. Esto ayuda a mantener el historial de código limpio y organizado y es fácil de hacer con unos pocos comandos.

¿Por qué aplastar compromisos?

Una de las reglas de oro de la buena etiqueta de Git es comprometerse con frecuencia con buenos mensajes que expliquen lo que hacen los compromisos. Sin embargo, esto puede convertirse rápidamente en un problema si se imponen demasiados compromisos. Después de todo, nadie quiere revisar una solicitud de extracción con 40 compromisos diferentes, todos listos para fusionarse en el maestro; es demasiado complicado.

Entonces, antes de apuntar a un repositorio remoto como GitHub, es una buena práctica calabaza esos compromisos que los unirán en un gran compromiso. Todos los mensajes de confirmación de estas confirmaciones se agregarán a la «confirmación aplastada» para que aún estén visibles cuando vaya a confirmar en GitHub o envíe su solicitud de extracción.

Además, no siempre es necesario aplastar cada confirmación, ya que a veces es bueno dividir las cosas si está trabajando en varios archivos o partes diferentes del repositorio. Sin embargo, si solo está realizando varios cambios en un solo archivo a lo largo del tiempo, probablemente debería aplastar esas confirmaciones.

Es importante observar que no puedes enviar confirmaciones que ya se enviaron a GitHub sin fuerza de presión que es una operación destructiva. Empujar confirmaciones sobrescribe el historial de Git, lo cual está bien si solo lo está haciendo en su máquina local. Si lo está haciendo en GitHub, requiere un empujón, lo que significa que todos en su equipo deben clonar el repositorio nuevamente para evitar conflictos.

Para evitar estos problemas, es mejor apretar las confirmaciones antes de confirmarlas en el repositorio remoto. Dado que ese es generalmente el momento en que desea hacer esto de todos modos, generalmente no es un problema.

Aplastando las confirmaciones de Git con git merge

Hay varias formas diferentes de compromisos de squash ya que no hay un ‘oficial’git squash» dominio. Uno de los más fáciles es usar git merge con --squash bandera. Esta técnica fusionará las últimas N confirmaciones en una sola.

Primero, querrá asegurarse de que su repositorio esté completamente limpio y sin cambios activos. Puedes comprobar git status para verificar si tiene algún cambio local que sería descartado por el reinicio.

A continuación, querrá restablecer la rama a la posición en la que estaba antes cualquiera de los compromisos que le gustaría aplastar juntos. Por ejemplo, para aplastar las últimas tres confirmaciones, usaría HEAD~3que técnicamente es el cuarto compromiso en la historia, pero eliminará los tres compromisos aplastantes de su historial.

git reset --hard HEAD~3

También puede usar el hash SHA-1 de una confirmación para especificar una confirmación directamente. entonces corremos git merge --squashcomo el objetivo de la fusión es HEAD@{1}que es la posición de la CABEZA antes del último comando.

git merge --squash 'HEAD@{1}'

Git ya ha preparado todos los cambios con el mensaje de confirmación correcto en esta etapa, pero debe confirmarse:

git commit

Una vez hecho esto, puede enviar cualquier confirmación a su repositorio de origen ascendente.

Más control sobre la trituración con rebase interactivo

Si no desea aplastar todo en una confirmación de un bit, puede realizar una reorganización interactiva para seleccionar solo las confirmaciones que desea aplastar. Rebasar puede ser complicado, pero es fácil de hacer con los pasos correctos.

Primero, ejecute la reorganización interactiva apuntando a la confirmación anterior a la última confirmación aplastable:

git rebase -i HEAD~3

Esto abrirá un editor de texto en el que querrá cambiar «elegir» a «aplastar» para cada confirmación que desee fusionar.

Luego, Git abrirá otro editor, lo que le permitirá crear un nuevo mensaje de confirmación para la confirmación combinada. Guarde esto y la reorganización debería estar completa.

Rebasar de esta manera fusionará todas las confirmaciones aplastadas en la siguiente confirmación por encima de ellas. En este caso, las confirmaciones segunda y tercera se fusionaron en la primera.

Aplastando las confirmaciones de Git con la GUI de Git

Como la mayoría de las cosas en Git, aplastar confirmaciones con una interfaz es mucho más fácil que recordar y escribir comandos cada vez. De hecho, en GitKraken puede hacer clic con la tecla Control presionada en las confirmaciones que desea aplastar y hacer clic con el botón derecho para presionar «Aplastar 2 confirmaciones»:

Puede lea nuestra guía para clientes de GUI Git aprender más.

CONECTADO: ¿Debería usar un cliente GUI Git?



[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!!

Si te ha gustado vota este post

Publicaciones Similares