Git revert last commit in heroku

Zrobiłem kommit i popchnąłem go do origin i heroku

Potem zdałem sobie sprawę, że to było złe, więc zrobiłem

git reset --soft HEAD^ 

Ale kiedy naciskam na Heroku, dostaję

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.
Rozumiem problem. Jak mam postępować? Jak mogę przywrócić commit Last heroku? (Zakładam, że byłoby najlepszym rozwiązaniem)
 44
Author: Martin, 2011-03-09

4 answers

Jeśli przywróciłeś commit lokalnie, może być konieczne git push z opcją -f, Aby wymusić commit.

Możesz również rzucić okiem na wydawnictwa Heroku, które również mogą pomóc.

 63
Author: John Beynon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-19 00:16:50

Z http://devcenter.heroku.com/articles/releases#rollback

Użyj polecenia rollback, aby powrócić do ostatniego wydania:

$ heroku rollback
Rolled back to v51

Możesz wybrać inne Wydanie do target:

$ heroku rollback v40
Rolled back to v40
 38
Author: Devi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-26 09:49:04

Biorąc pod uwagę, że już pchnął do innych(publiczne?) repozytoria, najlepszym sposobem na naprawienie tego jest prawdopodobnie cofnięcie git reset lokalnie, a następnie wykonanie git revert, aby utworzyć nowy commit, który odwraca skutki złego commita. Następnie wciśnij wszystko jeszcze raz. Więc krok po kroku:

  1. Więc najpierw git reset --hard origin/master lub git reset --hard heroku/master (lub jak się nazywa twoja gałąź śledzenia heroku), aby odzyskać lokalny master zły commit. To zdmuchnie wszelkie zaległe zmiany w Twoim egzemplarzu roboczym, więc bądź ostrożnie.

  2. Następnie git revert HEAD utworzyć nowy commit (wyświetli monit o komunikat commit).

  3. Następnie przyj, jak zwykle.

 7
Author: Dave Goodell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-09 15:52:07

Oto co zrobiłem. Najpierw utworzyłem nową gałąź ze starym commitem:

git checkout -b old-rev <commit-id>
Wtedy pobiegłem do mistrza heroku.]}
git push -f heroku old-rev:master

Kiedy skończę ze starą wersją i będę gotowy, aby dostać się do nowej wersji:

git checkout master
git push heroku master
git branch -d old-rev  # deletes the old branch; warns if there will be data loss
 0
Author: Ben Atkin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-17 10:22:47