fatal - Git revierte el último commit en heroku
heroku login (4)
Hice acommit y lo empujé a origen y heroku
Entonces me di cuenta de que estaba mal, así que lo hice
git reset --soft HEAD^
Pero cuando estoy presionando a Heroku estoy consiguiendo
To [email protected]:app.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to ''[email protected]:app.git''
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. ''git pull'') before pushing again. See the
''Note about fast-forwards'' section of ''git push --help'' for details.
Entiendo el problema ¿Cómo debo proceder? ¿Cómo puedo revertir también el último commit de heroku? (Supongo que sería la mejor solución)
Dado que ya ha enviado a otros repositorios (públicos?), La mejor manera de solucionar esto es deshacer el git reset
localmente, luego hacer un git revert
para crear un nuevo compromiso que invierta los efectos del compromiso incorrecto. Luego empuja todo de nuevo. Entonces paso a paso:
Entonces primer
git reset --hard origin/master
ogit reset --hard heroku/master
(o lo que sea que se llame a tu branch branch de heroku), para que tumaster
local regrese el commit incorrecto. Esto eliminará cualquier cambio pendiente en su copia de trabajo, así que tenga cuidado.A continuación,
git revert HEAD
para crear una nueva confirmación (le pedirá un mensaje de confirmación).Luego empuja como lo harías normalmente.
De http://devcenter.heroku.com/articles/releases#rollback
Use el comando de retrotracción para retroceder a la última versión:
$ heroku rollback
Rolled back to v51
Puede optar por especificar otra versión para apuntar:
$ heroku rollback v40
Rolled back to v40
Esto es lo que hice. Primero, creé una nueva rama con la antigua confirmación:
git checkout -b old-rev <commit-id>
Luego corrí push -f
la antigua sucursal del repositorio local al maestro de heroku:
git push -f heroku old-rev:master
Cuando termine con la versión anterior y esté lista para acceder a la nueva versión:
git checkout master
git push heroku master
git branch -d old-rev # deletes the old branch; warns if there will be data loss
Si has revertido la confirmación localmente, es posible que git push
con una opción -f
para forzar la confirmación.
Además, es posible que desee echar un vistazo a las versiones de Heroku que también pueden ser útiles.