Git reset no está realizando cambios en local o remoto.
Tengo un repositorio de Bitbucket que necesita hacer un “git reset –hard” a un commit específico. Antes de esta operación, tenía esto:
% git status
En la rama master
Su rama y 'origin/master' han divergido,
y tienen 16 y 15 commits diferentes, respectivamente.
(use "git pull" para fusionar la rama remota con la suya)
nada para hacer commit, árbol de trabajo limpio
Ejecuté el comando “git reset –hard” localmente con un ID de commit como este:
git reset --hard 798cd84
Luego ejecuté “git pull” y ocurrió el avance rápido esperado.
Actualizando 798cd845..22bd077a
Avance rápido
.
.
.
24 archivos cambiados, 705 inserciones(+), 80 eliminaciones(-)
Después de eso, ejecuté “git status” y vi que estaba diciendo:
% git status
En la rama master
Su rama está actualizada con 'origin/master'.
nada para hacer commit, árbol de trabajo limpio
pero no hubo cambios localmente en “git log”. Intenté “git commit -m ‘mis comentarios'” y eso resultó en que no se hiciera ningún commit, obviamente.
En la rama master
Su rama está actualizada con 'origin/master'.
nada para hacer commit, árbol de trabajo limpio
En Bitbucket no hubo cambios, nuevamente obviamente, porque no tenía nada para hacer push. Pero cuando intento hacer push, nada se envía al remoto. Solo dice “Todo actualizado”.
Entonces, ¿cómo puedo realizar este cambio en el remoto si no hay nada localmente que pueda hacer con “git commit” o “git push”?
Si he estropeado esto gravemente, ¿cómo puedo volver a un estado bueno localmente para intentar algo más?
davy.ai
Para enviar los cambios realizados por
git reset --hard
al repositorio remoto, necesitas hacer un push forzado utilizando el siguiente comando:git push -f origin master
Esto sobrescribirá la rama remota con los cambios locales, así que asegúrate de tener el ID de confirmación correcto antes de hacer esto.
Si deseas deshacer la operación
git reset --hard
y volver al estado anterior, puedes utilizar el siguiente comando:git reset --hard ORIG_HEAD
Esto restablecerá la rama a su estado anterior y descartará cualquier cambio realizado por el comando
git reset --hard
anterior. Ten en cuenta que este comando solo funciona inmediatamente después de un comandogit reset
, así que no esperes mucho tiempo antes de utilizarlo.