2

Hice varios cambios de prueba al “origen” (repositorio remoto) y ahora son solo basura, ¿Cómo los elimino? Estoy trabajando solo en este repositorio.

EDIT

Mi pregunta sí está duplicada, pero las respuestas no eran claras, así que agregué una nueva respuesta

Se puede cerrar esta pregunta.

OscarRyz
  • 381
  • 1
  • 2
  • 14

3 Answers3

6

Lo primero que debes hacer es hacer un reset hasta el último commit válido que quieres mantener:

git reset <commit> --hard

donde <commit> es el hash del commit al cual quieres regresar.

Luego tienes que hacer un nuevo push con la opción -f para forzar la sobreescritura del historial

git push -f origin master
Carlos Muñoz
  • 12,864
  • 2
  • 42
  • 62
1

Creo que lo correcto sería:

 $ git reset <commit> --hard
 $ git push -f origin master

Aquí puedes encontrar más información.

Jorgesys
  • 103,630
  • 13
  • 52
  • 124
  • Hey Carlos veo que me ganaste con la respuesta! :(, en cuanto al mensaje yo lo cambio a "DELETED BY USER!" para que sea completamente eliminada por el moderador! :D – Jorgesys Dec 07 '15 at 17:40
  • 1
    si me pareció muy extraño pero también supuse que lo ibas a editar rápido por eso no le dí ningún voto negativo ni reporte – Carlos Muñoz Dec 07 '15 at 17:42
  • Prefiero cambiarlo a "DELETED BY USER!" para que los usuarios no me den votos negativos cuando me encuentro en proceso de actualización de mi respuesta. =), por cierto en ocasiones no puedo editar rápido ya que estoy en el trabajo!!! jeje. – Jorgesys Dec 07 '15 at 17:47
1

La historia subida a un origen nunca debe ser borrada, creo que el camino correcto es usar

git revert 'commit'

Esto crea un nuevo commit en el cual se revierten los cambios hechos en el commit que hayas estipulado en el comando. Luego subes el comit al origen como harias con cualquier otro.

F. Fiebig
  • 86
  • 3
  • 1
    Esto genera mas commits basura que los cuales @OscarRyz desea deshacerse. Además una de las características de git es que justamente tiene la flexibilidad de reescribir la historia, lo cual se puede aprovechar aquí. – Carlos Muñoz Dec 09 '15 at 18:45
  • Si, pero git revert funciona en todos los casos, si los commits a borrar no son los ultimos en la historia este comando los revierte sin volver a ese estado del proyecto por completo, solo revierte ese commit. En esta pregunta no está especifico si los commit que quiere borrar son los ultimos en la historia, aquello podría provocar problemas a personas buscando una solucion para commits más antiguos. – F. Fiebig Dec 09 '15 at 18:52