paint-brush
Cómo limpiar tu historial de Gitpor@sevilamare
11,506 lecturas
11,506 lecturas

Cómo limpiar tu historial de Git

por Thiago Miranda5m2020/03/21
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

La razón principal es que su nueva funcionalidad puede romper el código de otras personas y viceversa, pero si siempre realiza pequeños cambios, será más fácil de rastrear y corregir, por lo que evitará perder mucho tiempo al rastrear docenas o cientos. de líneas cambiadas en una sola confirmación. Comprometerse siempre con frecuencia, ¿terminaste una función? Confirmarlo, ¿estilo mejorado de un solo div? cometer y así sucesivamente. Comprométete siempre. Limpia tu historial en modo interactivo (igit) Limpia tu historial de confirmaciones en el modo interactivo de Git.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Cómo limpiar tu historial de Git
Thiago Miranda HackerNoon profile picture

Una charla informal sobre algunos comandos git muy útiles .

Aquí compartiré los puntos principales de lo que aprendí, sobre el historial de confirmación de git, las buenas prácticas y cómo lograrlo usando una docena de comandos de git. Estas cosas las aprendí en el último mes, haciendo unos cientos de confirmaciones, con programación en pares.

  1. ¿Qué es la historia de Git?
  2. Acerca de los mensajes de confirmación
  3. Comprométete siempre
  4. Corregir el último mensaje de confirmación
  5. Convierte los últimos x commits en uno
  6. Eliminar última confirmación con los cambios tuyos
  7. Limpia tu historial de confirmaciones
  8. Administrar etapa
  9. Conclusión

1. ¿Qué es el historial de git?

Un registro preciso de todas las confirmaciones, que contienen los cambios en los archivos, allí puede rastrear qué cambio y cuándo, o comparar la versión actual con la anterior. ¿Dónde lo vemos? Escribe en git bash:

 git log --oneline

Si tiene demasiadas confirmaciones, puede navegar por los mensajes de confirmación, como lo hace en cualquier archivo, usando las flechas del teclado o la página hacia arriba/abajo, para salir escriba (q), es un atajo para salir.

2. Acerca de los mensajes de confirmación

No escriba mensajes sin sentido, deben ser breves y autoexplicativos, para decir qué cambios realizó en el código y dónde tienen efecto, por ejemplo:

  • mal: "corrección en index.html"
  • bueno: "Respuesta mejorada en la barra de navegación"

Una ilustración de por qué hacemos esto, imagina que estás en un gran proyecto, con tantos colaboradores, que ni siquiera sabes quiénes son la mayoría de ellos.

Entonces crea su nueva función, realiza las pruebas en su máquina y todo funciona.

Pero cuando presiona todos los errores repentinos, lo primero que desea verificar es cuáles son los cambios realizados en la mitad del tiempo que está codificando su nueva función, y en el registro de git obtuvo muchas confirmaciones con mensajes como "arreglar" ... puedes ver cuánta pérdida de tiempo será rastrear?

3. Comprométete siempre

Comprometerse con frecuencia, ¿terminó una función? Confirmarlo, ¿estilo mejorado de un solo div? cometer y así sucesivamente. Lo ideal es un archivo a la vez.

Usted puede pensar, ¿por qué debería cometer tantos? La razón principal es que su nueva funcionalidad puede romper el código de otras personas y viceversa, pero si siempre realiza pequeños cambios, será más fácil de rastrear y corregir, por lo que evitará perder mucho tiempo al rastrear docenas o cientos. de líneas cambiadas en una sola confirmación.

4. Corrija el último mensaje de confirmación

En caso de que haga una pequeña confirmación en su repositorio local con un error ortográfico, o desee cambiar el mensaje para que sea más descriptivo, ¿cómo puede solucionarlo? Es bastante fácil:

 git commit -m “correct message” --amend

Tenga en cuenta que si anteriormente ya envió a un repositorio remoto, es mejor que no use esto.

Puedes ver más sobre en: Documentación Oficial

5. Convierte las últimas x confirmaciones en una

¿Ya te metiste en esta situación? Donde después de hacer una confirmación para una nueva función, te das cuenta de que necesitas un pequeño cambio, por lo que haces algunos pequeños cambios y vuelves a confirmar, y terminas con 5 confirmaciones para lo mismo. Esto se ve feo en tu historial de git, y ahora quieres arreglarlo, no hay problema:

 git reset HEAD ~ 3

HEAD~3 diga 3 confirmaciones de head, incluida la confirmación en head, con este ejemplo, sus últimas 3 confirmaciones se borrarán del registro, pero sus cambios en el código permanecerán allí, observe qué código debe confirmarse ahora :

 git stage --diff

Verá que todos los cambios de las confirmaciones que borre del historial ahora están en el escenario, por lo que todos pueden confirmarse nuevamente, esta vez en una sola toma.

Tenga en cuenta que HEAD, por lo general, se refiere a la última confirmación que hizo, si no está seguro, verifique con git log. Si su última confirmación es una fusión (situación poco común), en este caso, usar HEAD~1 borrará todas las confirmaciones de la rama fusionada, también vea más, eche un vistazo a la documentación.

6. Elimina la última confirmación con tus cambios

Tenga cuidado, esto sobrescribirá todos los cambios, sin retroceder, generalmente se usa cuando intenta algo y no salió como esperaba. Recomiendo probarlo primero en un depósito de juguetes.

 git reset –-hard HEAD ~ 1

Ahora se elimina su última confirmación, así como todos los cambios realizados en el código allí.

7. Limpia tu historial de confirmaciones

La forma más eficiente de limpiar el historial de confirmaciones es usar rebase, tenga cuidado aquí, porque puede eliminar una confirmación si no escribe. Entonces, inicialicemos la rebase, en modo interactivo (marca -i):

 git rebase - i HEAD~ 5


Una vez que esté dentro, verá las últimas 5 confirmaciones (

 HEAD~5
) enumerados dentro de la terminal, ordenados con los más nuevos en la parte superior (esta lista está abierta con Vim *), y tiene un mini manual con algunos comandos que puede usar, en la mayoría de los casos lo que queremos es aplastar y reformular.

Reemplazando pick por squash, esta confirmación se borrará del registro y los cambios de código se agruparán con la última confirmación con selección.

Si desea cambiar el mensaje, puede reemplazar selección por reformulación y cambiar el mensaje directamente.

Ahora puede pasar a otra pantalla, donde escribe un único mensaje de confirmación para el grupo de confirmaciones que realiza squash. Para ir presione ESC y escriba:

 :wq!

Colon (

 :
) es decir que quieres pasar un comando, (
 w
) es escribir (guardar) los cambios, (
 q
) para salir, y (
 !
) a ejecutivo.

Tenga en cuenta que cada grupo tendrá su mensaje. Puede verificar el resultado en el registro de git.

* Vim es un editor de texto predeterminado que viene con git y le permite editar archivos de texto dentro de la terminal.

Si por alguna razón, deja esta pantalla con la operación sin terminar, puede regresar en cualquier momento con:

 git rebase --edit

Si desea salir sin cambios, presione la tecla ESC y escriba en el teclado:

 :q!

Le dirá a Vim, que salga sin guardar.

8. Gestionar el escenario

Nuestras confirmaciones generalmente deben estar en un solo archivo o en un grupo de archivos relacionados. Pero, ¿cómo podemos hacer cambios rápidos en el escenario, hacer o cometer?

Digamos que tiene 3 archivos, y solo 2 deben confirmarse, puede hacer esto:

 git add .

Así que quita el que no quieras del escenario:

 git reset -- Readme.txt

Y comprueba el resultado:

 git status

Agregue todos los archivos de alguna extensión, ejemplo CSS:

 git add *.css

¿Añadido todo por error? Así que limpia el escenario:

 git reset --

Para operaciones más elaboradas, puede agregar los archivos al escenario con el modo interactivo:

 git add -i

Primero elija una opción, escribiendo el número correspondiente, como (3) para revertir.

Después de elegir una opción, puede pasar el índice de los archivos que desea eliminar del escenario, uno por uno.

Cuando termines escribe (Enter).

Para agregar archivos, siga el mismo proceso pero usando la opción (4) agregue un archivo sin seguimiento.

Para salir, escriba (

 q
) en el menú de opciones.

9. Conclusión

El punto principal a tener en cuenta es que antes de enviar a un repositorio remoto y especialmente antes de fusionar su rama, debemos asegurarnos de que nuestro historial de confirmaciones esté limpio. Una vez que empujamos a un repositorio remoto, rara vez alguien arreglará eso.

¿Quiere aprender más sobre la programación en pareja y convertirse en un desarrollador de software remoto? Echa un vistazo a Microverse.org

Si tiene alguna pregunta, sugerencia o desea compartir sus pensamientos al respecto, escriba los comentarios a continuación, le responderé lo antes posible.