如何重置Heroku应用程序并重新提交所有内容?

bru*_*077 50 git heroku ruby-on-rails-3

我正在构建一个我也在Heroku中测试的应用程序.我今天遇到了一些问题,不得不在我当地的git repo中回滚一个提交,但Heroku现在不会认识到我的更改说"一切都是最新的".

所以,跑步

git push heroku master
Run Code Online (Sandbox Code Playgroud)

heroku回应

Everything up-to-date
Run Code Online (Sandbox Code Playgroud)

这不是真的.

更新:我尝试过的事情

git push -f heroku master
git push --force heroku master
git push heroku +master
git push --force heroku +master
Run Code Online (Sandbox Code Playgroud)

然后在源代码中做了一些更改

git add.
git commit -a -m "Message" #(Then this commit shows in my git explorer)
git push heroku master #Everything up-to-date
Run Code Online (Sandbox Code Playgroud)

oma*_*oma 50

听起来怪怪的.也许尝试推动不同的分支会做什么?

git branch production
git checkout production
#do some code changes
git commit -am "some desperate code changes to try fix heroku"
git push heroku production:master
Run Code Online (Sandbox Code Playgroud)

创建一个新的生产分支是我想要你测试的.此外,拥有一个可用于部署的生产分支是件好事.

如果它不起作用,那么我认为问题会更深入,你需要来自heroku的帮助.

编辑:添加heroku版本插件.回滚就像这样简单heroku rollback

  • 我有同样的问题,使用git reset和push --force引起的.此解决方案有效.我甚至不必创建一个新分支,只需git push heroku [current_branch]:master. (2认同)

Rob*_*vis 44

这并不适用于所有情况,但如果您的本地仓库与Heroku仓库不同,那么git无法弄清楚如何协调这两个 - 就像您在推送到Heroku后重新设置本地分支一样 - 你可以通过在ref之前加一个加号来强制推送,如下所示:

git push heroku +master
Run Code Online (Sandbox Code Playgroud)

它可能不适用于您的情况,但值得一试.

  • 仍然回复一切 - 最新= / (6认同)
  • 我最终不得不做`git push heroku + production:master` (6认同)

小智 19

这对我有用(来自https://coderwall.com/p/okrlzg):

  1. heroku plugins:install https://github.com/lstoll/heroku-repo.git
  2. heroku repo:reset -a APPNAME

从那里,git存储库已经"重置".接下来,运行:

  1. git push heroku master -a APPNAME

种子git存储库并重新部署你的应用程序.

  • 这是我在NodeJS应用程序中唯一有用的东西.我的git虽然没有识别出`-a`标志. (2认同)

txo*_*mon 8

假设您回滚了一个远程执行的提交,这是以前存在的.我想你应该做:

git merge heroku/master
Run Code Online (Sandbox Code Playgroud)

如果你只是想继续前进

要么:

git push --force heroku master
Run Code Online (Sandbox Code Playgroud)

如果你想推动这种变化