Git: errores comunes y cómo solucionarlos

Si alguna vez trabajó en un proyecto grande, en el que, además de usted, participan muchos otros programadores, entonces obviamente utilizó Git como sistema de control de versiones. En el curso de usar algo, de acuerdo con el nivel de complejidad de un Git similar, todos cometen errores.


El autor del material, cuya traducción publicamos hoy, discutirá los errores comunes que cometen los programadores al trabajar con Git, y hablará sobre cómo lidiar con estos errores.

Error en el último mensaje de confirmación


Después de varias horas de buen trabajo, es fácil cometer un error en el mensaje de confirmación. Afortunadamente, esto se puede solucionar fácilmente con el siguiente comando:

git commit --amend 

Este comando abrirá el editor y le permitirá realizar cambios en el último mensaje de la confirmación. Nadie, excepto usted, debe saber que escribió "Comentario inicial" con tres "m".

Error en el nombre de la sucursal


Supongamos que el reloj es casi las 15:00 y que aún no ha almorzado. Como resultado, atormentado por el hambre, nombró un nuevo feature-brunch sucursal. Delicioso, no puedes decir nada.

Este problema también se puede resolver. Puede cambiar el nombre de una rama de la misma manera que cambia el nombre de los archivos con el comando mv . Se trata de trasladarla a un nuevo lugar con el nombre correcto:

 git branch -m feature-brunch feature-branch 

Si ya ha enviado este hilo al repositorio, debe hacer un par de cosas más para cambiarle el nombre. Debe eliminar la rama anterior y enviar la nueva al repositorio:

 git push origin --delete feature-brunch git push origin feature-branch 

Cambios de confirmación aleatorios a la rama maestra


Supongamos que está trabajando en una nueva función y, de inmediato, olvidó crear una nueva rama para ella. Ya ha comprometido un montón de archivos y todo esto se encuentra en la rama master . Puede mover todos estos cambios a una nueva rama utilizando los siguientes tres comandos. Tenga en cuenta que si no utilizó, como se aplica a los cambios, los comandos commit o stash , se perderán.

 git branch feature-branch git reset HEAD~ --hard git checkout feature-branch 

Como resultado, se creará una nueva rama, los cambios se revertirán en la rama master al estado en el que se encontraba antes de que se realizaran los cambios, y se llevará a cabo una transición a la nueva rama, que contendrá todos los cambios realizados anteriormente en el master .

Trabaje con archivos que olvidó agregar a la última confirmación


Otro descuido común cuando se trabaja con Git es que las confirmaciones se realizan demasiado pronto y los archivos necesarios no entran en ellas. Digamos que perdió un archivo, olvidó guardarlo o necesita hacer un pequeño cambio en el archivo para que la última confirmación tenga sentido. En esta situación, el comando --amend será útil nuevamente. Agregue el archivo que falta al índice del repositorio y ejecute este comando:

 git add missed-file.txt git commit --amend 

Después de eso, puede cambiar el mensaje de confirmación o dejarlo igual que antes.

Agregar el archivo incorrecto al repositorio


¿Qué pasa si su error es exactamente el opuesto al anterior? ¿Qué sucede si agrega un archivo al índice que no va a confirmar? Puede ser un archivo ENV, un directorio de compilación del proyecto, una foto de su perro que guardó accidentalmente en la carpeta incorrecta. Todo esto se puede arreglar.

Si sus acciones se limitan a indexar el archivo, pero aún no lo ha confirmado, será muy fácil tratar el problema con el comando de reset :

 git reset /assets/img/misty-and-pepper.jpg 

Si ha avanzado lo suficiente y ha logrado confirmar el cambio, sepa que esto se puede solucionar. Solo tiene que usar algunos comandos más:

 git reset --soft HEAD~1 git reset /assets/img/misty-and-pepper.jpg rm /assets/img/misty-and-pepper.jpg git commit 

Como resultado, la última confirmación se cancelará, la imagen se eliminará, después de lo cual la nueva confirmación se colocará donde debería estar.

¿Qué pasa si todo salió mal?


La técnica que vamos a discutir ahora ayuda en situaciones donde todo sale mal. Por ejemplo, esto sucede cuando está demasiado interesado en copiar soluciones ya preparadas con StackOverflow y, después del trabajo, su repositorio está en peores condiciones que al principio. Quizás todos caímos en esta situación.

El git reflog muestra una lista de todo lo que hiciste. Luego, le permite usar las herramientas de Git para revertir los cambios y volver a uno de los estados anteriores del repositorio. Vale la pena señalar que vale la pena considerar este método como último recurso, y antes de usarlo, debe pensar cuidadosamente. Entonces, puede enumerar lo que se ha hecho con el siguiente comando:

 git reflog 

Git recuerda todas nuestras acciones y, como resultado de ejecutar este comando, puede ver algo como lo siguiente:

 3ff8691 (HEAD -> feature-branch) HEAD@{0}: Branch: renamed refs/heads/feature-brunch to refs/heads/feature-branch 3ff8691 (HEAD -> feature-branch) HEAD@{2}: checkout: moving from master to feature-brunch 2b7e508 (master) HEAD@{3}: reset: moving to HEAD~ 3ff8691 (HEAD -> feature-branch) HEAD@{4}: commit: Adds the client logo 2b7e508 (master) HEAD@{5}: reset: moving to HEAD~1 37a632d HEAD@{6}: commit: Adds the client logo to the project 2b7e508 (master) HEAD@{7}: reset: moving to HEAD 2b7e508 (master) HEAD@{8}: commit (amend): Added contributing info to the site dfa27a2 HEAD@{9}: reset: moving to HEAD dfa27a2 HEAD@{10}: commit (amend): Added contributing info to the site 700d0b5 HEAD@{11}: commit: Addded contributing info to the site efba795 HEAD@{12}: commit (initial): Initial commit 

Presta atención a la columna más a la izquierda de esta lista. Contiene índices. Si necesita regresar en algún momento en el pasado, ejecute el siguiente comando, reemplazando {index} con el enlace apropiado, por ejemplo, dfa27a2 . Este comando se ve así:

 git reset HEAD@{index} 

Resumen


Analizamos algunas formas de lidiar con los errores que ocurren al trabajar con Git. Esperamos que no cometa tales errores y estos métodos de trabajo con Git no le serán útiles. Y si algo sale mal, sabrá qué hacer.

Estimados lectores! ¿Conoces algún truco interesante para trabajar con Git? Si es así, por favor compártalos.

Source: https://habr.com/ru/post/es423015/


All Articles