8

在 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 是错误的,因为我的视图有一些清晰的变化,你可以在我的本地代码和登台服务器上看到这些变化,但在我的实时生产应用程序上看不到。

例如,比较在我的暂存应用程序中正确的“返回”链接我的生产应用程序中没有。

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

谢谢,

史蒂文。

4

2 回答 2

16

你确定你指的是正确的分支吗?这是实际命令的语法:

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将推送您未更改的master分支。相反,运行

git push heroku the_branch_i_changed:master
于 2014-03-09T23:18:10.707 回答
0

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

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

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

rake assets:precompile

希望能节省别人我浪费的时间!

于 2016-05-23T00:50:03.057 回答