コミットしてOriginとherokuにプッシュしました
それから私はそれが間違っていることに気付いたので、私はしました
git reset --soft HEAD^
しかし、私がHeroku Imにプッシュしているとき、
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.
私は問題を理解しています。どうすればいいですか?最後のherokuコミットを元に戻すにはどうすればよいですか? (私は最善の解決策になると思います)
ローカルでコミットを元に戻している場合は、git Push
とともに -f
オプションを使用して強制的にコミットします。
また、 Herokuのリリース も参考にするとよいでしょう。
から http://devcenter.heroku.com/articles/releases#rollback
最後のリリースにロールバックするには、rollbackコマンドを使用します。
$ heroku rollback
Rolled back to v51
ターゲットにする別のリリースを指定することを選択できます。
$ heroku rollback v40
Rolled back to v40
他の(パブリック?)リポジトリにすでにプッシュしている場合、これを修正する最善の方法は、おそらくgit reset
ローカルで、次にgit revert
不正なコミットの影響を元に戻す新しいコミットを作成します。次に、すべてをもう一度プッシュします。だから一歩一歩:
最初にgit reset --hard Origin/master
またはgit reset --hard heroku/master
(またはherokuトラッキングブランチが呼び出されるもの)、ローカルmaster
に悪いコミットを取り戻すため。これにより、作業コピーの未処理の変更がすべて消去されますので、注意してください。
次にgit revert HEAD
新しいコミットを作成します(コミットメッセージの入力を求めます)。
次に、通常どおりにプッシュします。
これが私がしたことです。最初に、古いコミットで新しいブランチを作成しました。
git checkout -b old-rev <commit-id>
それから私は走ったPush -f
herokuのマスターへのローカルリポジトリの古いブランチ:
git Push -f heroku old-rev:master
古いバージョンでの作業が完了し、新しいバージョンに移行する準備ができたら:
git checkout master
git Push heroku master
git branch -d old-rev # deletes the old branch; warns if there will be data loss