Borrar el commit del repositorio remoto en Git
A veces, cuando trabajamos con Git, nos damos cuenta de que las commits han salido mal y deben eliminarse. La razón podría ser que los clientes no quieren ese trabajo en el producto.
O introdujimos un error o necesitamos trabajar en él nuevamente ya que cometimos una implementación incorrecta.
Este artículo hablará sobre cómo podemos eliminar los repositorios locales y remotos y limpiar todos estos repositorios usando el comando Git.
En Git, podemos borrar commits a través de dos procedimientos diferentes. Y estos procedimientos dependen de los cambios, ya sea que se envíen o no a la rama remota.
Borrar commit del repositorio local en Git
Si nuestros cambios aún no se han enviado al repositorio remoto, podemos eliminar el commit reciente localmente a través del siguiente comando:
git reset --hard HEAD~1
El comando mencionado anteriormente eliminará todos los cambios realizados en la carpeta (árbol de trabajo) y moverá el HEAD
a la última confirmación antes del HEAD
.
Si queremos eliminar los commits hasta un commit en particular, ejecutaremos git log
para buscar la identificación del commit en particular. Después de eso, eliminaremos esas commits usando el siguiente comando mencionado:
git reset --hard <sha1-commit-id>
Este comando mencionado anteriormente descartará todos los cambios realizados en el árbol de trabajo y moverá el HEAD
al compromiso que hemos elegido.
Borrar commit del repositorio remoto en Git
Si queremos borrar el commit del repositorio remoto, haremos force-push
del nuevo commit HEAD
. Alternativamente, si ya hemos empujado nuestros cambios al repositorio remoto, ejecutaremos el siguiente comando:
git push origin HEAD --force
Si alguien más ha tirado de esta rama, entonces es mejor comenzar una nueva rama; de lo contrario, lo combinará en su trabajo y, en este caso, debemos volver a empujar la misma rama.
Esto eliminará el commit de ambos repositorios: local y remoto. Si necesitamos eliminarlo solo desde el remoto y no desde el local, ejecutaremos el siguiente comando mencionado:
git push origin +HEAD^:branch_name
Antes de ejecutar estos comandos, deberíamos echar un segundo vistazo porque eliminará todos los cambios de nuestro directorio de trabajo.
Después de eliminar, si quisiéramos buscar esa confirmación nuevamente, preferiblemente, estaría presente en <git reflog>
a menos que nuestro repositorio haya sido recolectado como basura.
Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.
LinkedIn