Pregunta ¿Cómo puedo eliminar una confirmación en GitHub?


Yo "accidentalmente" presioné un compromiso con GitHub.

¿Es posible eliminar esta confirmación?

Quiero revertir mi repositorio de GitHub como estaba antes de este compromiso.


1404
2018-01-15 23:20


origen


Respuestas:


Nota: por favor vea una alternativa a git rebase -i en los comentarios a continuación-

git reset --soft HEAD^

Primero, elimine la confirmación en su repositorio local. Puedes hacer esto usando git rebase -i. Por ejemplo, si es tu último compromiso, puedes hacer git rebase -i HEAD~2 y elimine la segunda línea dentro de la ventana del editor que aparece.

Luego, forzar push a GitHub usando git push origin +branchName

Ver Git Magic Capítulo 5: Lecciones de historia - y luego algunas para obtener más información (es decir, si desea eliminar compromisos anteriores).

Ah, y si tu árbol de trabajo está sucio, tienes que hacer un git stash primero, y luego un git stash apply después.


1016
2018-01-15 23:24



git push -f origin HEAD^:master

Eso debería "deshacer" el empuje.


853
2018-01-16 00:11



Para una reversión fácil, si es solo un error (tal vez has abierto un repositorio, y luego terminaste empujando al original en lugar de a uno nuevo) aquí hay otra posibilidad:

git reset --hard 71c27777543ccfcb0376dcdd8f6777df055ef479

Obviamente, cambie ese número por el número del compromiso al que desea regresar.

Todo desde entonces se eliminará una vez que vuelva a presionar. Para hacer eso, el próximo paso sería:

git push --force

293
2018-04-21 20:26



  1. git log para averiguar el compromiso que desea revertir

  2. git push origin +7f6d03:master mientras que 7f6d03 es la confirmación antes de la confirmación erróneamente presionada. + Fue por force push

Y eso es.

aquí es una muy buena guía que resuelve tu problema, fácil y simple!


70
2018-02-09 11:58



Necesitarás borrar tu caché para que se borre por completo. esta página de ayuda de git te ayudará. (Me ayudó) http://help.github.com/remove-sensitive-data/


34
2017-07-27 22:38



En caso de que quiera mantener los cambios de confirmación después de la eliminación:

Tenga en cuenta que esta solución funciona si el compromiso que se va a eliminar es el último cometido.


1 - Copie la referencia de compromiso que desea para volver desde el registro:

git log

2 - Restablecer git a la referencia de confirmación:

 git reset <commit_ref>

3 - Almacene / almacene los cambios locales de la confirmación incorrecta para usarlos más tarde después de presionar a control remoto:

 git stash

4 - Presione los cambios al repositorio remoto, (-f o --force):

git push -f

5 - Recuperar los cambios almacenados en el repositorio local:

git stash apply

7 - En caso de que tenga archivos sin seguimiento / nuevos en los cambios, debe agregarlos a git antes de realizar:

git add .

6 - Agregue los cambios adicionales que necesite, luego ingrese los archivos necesarios (o use un punto '.' En lugar de indicar cada nombre de archivo para confirmar todos los archivos en el repositorio local):

git commit -m "<new_commit_message>" <file1> <file2> ...

o

git commit -m "<new_commit_message>" .

31
2018-06-07 14:44



Utilizar git revert para revertir tu impulso.

git-revert - Revertir algunos commits existentes

git revert [--edit | --no-edit] [-n] [-m parent-number] [-s] <commit>...
git revert --continue
git revert --quit
git revert --abort

Revertir los cambios que introducen los parches relacionados y registrar algunos nuevos commits que los graban. Esto requiere que su árbol de trabajo esté limpio (sin modificaciones desde el compromiso HEAD).


24
2017-07-17 08:21



1. git reset HEAD^ --hard
2. git push origin -f

Este trabajo para mí.


19
2017-08-10 08:41



Para eliminar la confirmación del repositorio remoto:

 git push -f origin last_known_good_commit:branch_name

Para eliminar la confirmación de su repositorio local:

git reset --hard HEAD~1

enlazar


13
2018-03-07 01:27



Elimine la confirmación más reciente, manteniendo el trabajo que ha realizado:

git reset --soft HEAD~1

Elimine la confirmación más reciente, destruyendo el trabajo que ha realizado:

git reset --hard HEAD~1

10
2017-11-15 12:39