我正在构建一个应用程序,我也在 Heroku 中进行测试。我今天遇到了一些问题,不得不在我的本地 git 存储库中回滚一个提交,但 Heroku 现在不会识别我的更改,说"一切都是最新的"。
所以,跑步
git push heroku master
希罗库回应
Everything up-to-date
这不是真的。
更新:我尝试过的事情
git push -f heroku master
git push --force heroku master
git push heroku +master
git push --force heroku +master
对源代码进行了一些更改,然后
git add.
git commit -a -m "Message" #(Then this commit shows in my git explorer)
git push heroku master #Everything up-to-date
听起来很奇怪。也许尝试推一个不同的分支会做?
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
创建新的生产分支是我希望您测试的内容。此外,拥有一个可用于部署的生产分支真是太好了。
如果它不起作用,那么我认为问题更深,您需要 heroku 的帮助。
编辑:也添加 heroku 发布插件。回滚就像heroku rollback
一样简单
这并非在所有情况下都有效,但是如果您的本地存储库与 Heroku 存储库不同,以至于 git 无法弄清楚如何协调两者 - 就像您在将本地分支推送到 Heroku 后重新定位本地分支一样 - 您可以通过在 ref 前放置加号 + 来强制推送,如下所示:
git push heroku +master
它可能不适用于您的情况,但值得一试。
我有用(从 https://coderwall.com/p/okrlzg):
- 运行
heroku plugins:install https://github.com/lstoll/heroku-repo.git
-
heroku repo:reset -a APPNAME
从那里,git 存储库已被"重置"。 接下来,运行:
-
git push heroku master -a APPNAME
为 Git 存储库设定种子并重新部署应用。
假设您回滚了以前存在的远程提交。我认为你应该做:
git merge heroku/master
如果你只是想前进
或:
git push --force heroku master
如果你想推动这种改变
我曾经遇到过类似的问题,并通过更改代码中的一个字符并再次运行 git add/commit/push 来解决它。我想你已经尝试过了。
不要破坏应用程序,只需在CSS文件或其他内容中添加注释,看看是否可以解决问题
祝你好运
我遇到了同样的问题,并通过以下方式解决了它
Git 推送源头:主
给你的
Git push heroku HEAD:Master
过了一会儿,我想到使用像这样的耙子任务 deploy.rake
它将标准化并加快部署,尤其是在应实施迁移时
puts `git push -f git@heroku.com:#{APP}.git #{current_branch}`
如您所见,选项 --force(或 -f)用于任何推送,以忽略与 heroku 的 git 存储库的任何冲突
但我不建议新人使用它:)
我遇到了同样的问题,我尝试了所有建议,但没有帮助。我必须在本地运行资产预编译并推送,即使我heroku run rake assets:precompile
.
rake assets:precompile
git add .
git commit -am "local assets precompile"
git push heroku master
当您上传启动的新版本(slug)时,您的 heroku 应用程序将自动重置。 如果您的应用程序以使其无法启动的方式进行更改,您的应用程序dynos将继续运行旧版本。
换句话说,当您部署应用程序时,它会将 slug(新源代码)加载到新的测功机中,如果测功机正确加载应用程序,它将让该测功机替换当前运行您的应用程序的测功机。
这可能是您看不到任何变化的问题......
如果您有来自git push heroku
的日志,请发布它们。
编辑: git reset
处理 git 索引,而不是工作树或当前分支。
您必须让他们签出您重置的提交才能实际更改文件——这如何与 heroku 交互,我不太确定(从未回滚到 heroku 的部署,手指交叉),但希望它有所帮助。 也许尝试在结账后做一个git push heroku
?