es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , , ,

Answer

  1. Avatar for 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 comando git reset, así que no esperes mucho tiempo antes de utilizarlo.

Comments are closed.