Deshaciendo un montón de desastre Git

Quiero volver a una identificación de confirmación específica. Restaurar un file que "git rm" -ed. Sopla todos los commits realizados desde entonces. Y luego comprometer ese repository. ¿Cómo haría esto?

$ git reset --hard <commit ID> # Will reset to a specific commit $ git push -f <remote> # Push branch into remote, with force 

Tenga en count que cualquier persona que haya clonado su repos podría experimentar problemas menores si simplemente retiró sus cambios (ya que obligó a la twig hacia atrás en el historial de confirmación); deberían hacer esto para get sus cambios:

 $ git fetch <remote> $ git reset --hard <remote>/<branch> 

Tenga en count que esto también eliminará cualquiera de sus cambios en la twig actual. Sin embargo, si tienen twigs hechas a partir de su twig actual, esas twigs todavía tendrán los commits que "volaron".

Quizás estés buscando un git reset --soft {ID} .

  git reset --<mode> [<commit>] This form resets the current branch head to <commit> and possibly updates the index (resetting it to the tree of <commit>) and the working tree depending on <mode>, which must be one of the following: --soft Does not touch the index file nor the working tree at all (but resets the head to <commit>, just like all modes do). This leaves all your changed files "Changes to be committed", as git status would put it. 

No estoy seguro de qué significa realmente "golpe", por --hard modo --hard podría ser útil.

Puedes usar git revert my_commit_id command.

Si se trata de uno o dos commits previos, lo haces con git revert HEAD y git revert HEAD^ respectivamente.

En lugar de HEAD usa tu identificación de commit si esto no resuelve tu caso.

Esto también le dará la opción de editar commit messg nuevamente y crear nueva confirmación. `