[英]Git revert last commit in heroku
我做了一下,把它推到了原點和heroku
然后我意識到這是錯的,所以我做到了
git reset --soft HEAD^
但是當我向Heroku推進時,我正在努力
To git@heroku.com:app.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@heroku.com: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提交? (我認為這將是最好的解決方案)
如果你在本地還原了提交,你可能需要使用-f
選項git push
來強制提交。
此外,您可能想看看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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.