簡體   English   中英

Git還原了heroku中的最后一次提交

[英]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以創建一個新的提交,以反轉錯誤提交的影響。 然后再推一切。 所以一步一步:

  1. 所以首先git reset --hard origin/mastergit reset --hard heroku/master (或任何你的heroku跟蹤分支被調用),以便讓你的本地master返回錯誤的提交。 這會消除您工作副本中的任何未完成的更改,因此請小心。

  2. 然后git revert HEAD以創建新的提交(它將提示您提交提交消息)。

  3. 然后像往常一樣推。

這就是我做的。 首先,我使用舊提交創建了一個新分支:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM