Acerca de:

Este blog contiene los códigos, ejemplos y bases de datos que he usado cuando aprendía acerca de algún tema específico. En lugar de borrarlos (una vez dominado ya el tema), he decidido publicarlos :)

lunes, 24 de abril de 2023

Comandos de git para eliminar commits, y ramas locales y remotas

Intentaba hacer un git checkout otra_rama y me salió este error:

fatal: unable to create 'xxx/.git/index.lock': file exists.

Another git process seems to be running in this repository, e.g. an editor opened by 'git commit'. Please make sure all processes are terminated then try again. If it still fails, a git process may have crashed in this repository earlier: remove the file manually to continue.

Al ejecutarse, git deja un archivo dentro de la carpeta oculta .git llamad index.lock el cual puede eliminarse manualmente. En mi caso, una de las ventanas de consola había dejado de responder y tuve que matarla.

Pongo también el comando que se usa para eliminar el último commit:

git reset --hard HEAD~1

Si se quiere eliminar una rama local, se debe hacer:

git checkout otra_rama

git branch -D rama_que_quiero_eliminar

Lo que no dicen los tutoriales es que primero debemos ubicarnos en otra rama o se lanzará el error:

cannot delete branch checked out at xxx

Para eliminar una rama remota:

git push origin --delete rama_a_eliminar 

o también:

git push origin -d rama_a_eliminar 

Si se ingresa el comando:

git push --delete rama_a_eliminar 

Lanzará el error:

fatal: --delete desn't make any sense without any refs

Me pasé horas buscando cómo restaurar los refs en lugar de revisar el comando y darme cuenta que me faltaba el origin :(