[英]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.