【问题标题】:Why does Heroku think everything is up-to-date when it isn't?为什么 Heroku 认为一切都是最新的,而实际上并非如此?
【发布时间】:2012-11-14 11:42:38
【问题描述】:

在 Heroku 上,我有一个生产应用程序,并且我知道有一个临时应用程序:

$ heroku list
=== My Apps
testivate
testivate-staging

我每个都有遥控器:

$ git remote -v
heroku  git@heroku.com:testivate.git (fetch)
heroku  git@heroku.com:testivate.git (push)
staging git@heroku.com:testivate-staging.git (fetch)
staging git@heroku.com:testivate-staging.git (push)

几天后,一个部署破坏了我的生产应用程序,所以我使用了heroku rollback,最后创建了我现在使用的暂存应用程序,并将我的代码推送到暂存应用程序,大概是git push staging master。 (这是几天前的事,但我很确定我就是这么做的。)

这一切现在都在我的临时应用程序上运行,所以我正在尝试将我的代码推送到我的生产应用程序。

但是,Heroku 一直告诉我我的生产应用程序已经是最新的:

$ git branch
* master

$ git status
# On branch master
nothing to commit (working directory clean)

$ git add .
$ git add -u
$ git commit -m "trying to commit"
# On branch master
nothing to commit (working directory clean)

$ git push heroku master
Everything up-to-date

$ git remote show staging
* remote staging
  Fetch URL: git@heroku.com:testivate-staging.git
  Push  URL: git@heroku.com:testivate-staging.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local ref configured for 'git push':
    master pushes to master (up to date)

$ git remote show heroku
* remote heroku
  Fetch URL: git@heroku.com:testivate.git
  Push  URL: git@heroku.com:testivate.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local ref configured for 'git push':
    master pushes to master (up to date)

但是我知道 Heroku 是错误的,因为我的视图有一些清晰的变化,您可以在我的本地代码和暂存服务器上看到这些变化,但在我的实时生产应用程序上看不到。

例如,比较在我的暂存应用程序中正确为 here 的“返回”链接,但在我的生产应用程序中不是 here

如何让 Heroku 根据需要更新我的生产应用程序?

谢谢,

史蒂文。

【问题讨论】:

  • 您是否查看过heroku releases 以了解生产应用程序的状态/提交?
  • 谢谢,是的,答案是回滚到回滚之前的版本。
  • @steven_noble 嘿,如果你已经解决了你的问题,post an answer and accept your own answer 完全可以接受 :)
  • 是的,通过发布您的答案,您可以将问题从未回答队列中删除,并使未来的访问者更容易看到该解决方案 :)

标签: git heroku


【解决方案1】:

您确定您指的是正确的分支吗?下面是实际命令的语法:

git push heroku <the branch you wish to push>:<the branch on the heroku server you wish to push to>

所以如果你习惯跑步

git push heroku master

并且您结帐并提交到除 master 之外的分支,运行 git push heroku master 将推送您未更改的 ma​​ster 分支。相反,运行

git push heroku the_branch_i_changed:master

【讨论】:

  • git push heroku the_branch_i_changed 快到了,但您忽略了一个事实,即您必须告诉 Heroku 遥控器您仍想推送到 它的 master 分支(Heroku 只会从master 分支部署)。所以应该是:git push heroku the_branch_i_changed:master.
  • @redhotvengeance 是的,你说得对,谢谢
【解决方案2】:

这是我如何在相同的结果下犯了一个不同的错误(特定于 Ruby on Rails):

我的本​​地站点显示了我的新徽标图像,heroku 站点显示了旧徽标图像。尽管如此,我仍然看到消息:“没有提交(工作目录干净)”。

我忘记在推送之前重新编译资产:

rake assets:precompile

希望其他人可以节省我浪费的时间!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 2020-07-10
    • 2012-06-28
    • 2015-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多