我在Heroku上有一个运行旧代码的应用程序。我做了一个小小的改变,并做出了改变。然后我跑了
git push heroku master
它会说
Fetching repository, done.
Everything up-to-date
但是,如果我去查看应用程序,那就是所有旧代码。大约15天前,我确实将网站恢复到Heroku中的另一个版本,但是从那时起它就推送了更新版本,并且它们都有效。
为什么heroku没有从我的github存储库中获取最新文件?有没有办法只重置应用程序并再次从github推送文件?我在数据库中有生产数据,所以我不想触摸它。
提前致谢!!
答案 0 :(得分:69)
请确认您当前的分支是主人。
git branch
如果指针未指向主控,则检查主分支
git checkout master
提交您的更改并尝试推送到heroku
git commit -am "xxxyyzzz"
git push heroku master
答案 1 :(得分:49)
当你运行git push heroku master
时,git假设你正在从master中推送,所以如果你在其他分支中进行了更改,你将尝试推送你的master分支而不做任何更改。
您有两个选择
1.使用master修改您的更改并将其推送。
在实际分支中提交更改,然后将其与主
合并git commit -a - m "your messages"
git checkout master
git merge your_feature_branch
git push heroku master
2.从您的实际分支推送您的更改
git push heroku your_feature_branch:master
答案 2 :(得分:11)
我愿意打赌你忘记了git add .
后跟git commit -m 'xyz'
?
答案 3 :(得分:8)
我有类似的问题,但我的更改在heroku上无法显示。为了重新确认自己,我甚至从heroku中取出了一个克隆,这显然是最新的。
我只能通过以下方法解决我的问题:
第1步:从master
git checkout -b new_branch
第2步:只需在任何文件中添加评论即可进行新提交,然后:
git add .
git commit -m "Just a test commit to push new branch to heroku"
第3步:将新分支推送到heroku。
git push heroku new_branch:master
heroku restart
您现在可以在heroku上成功查看更改。
答案 4 :(得分:4)
尽管这是一个老问题,但我想更新一下对我来说有什么用(新手)应该是其他人遇到的:
按照这里的说明(来自Hudson)之后,我最终的诀窍是做了一个" git pull"签出"主人"科。也许" git push heroku master"只推出master的本地分支?
当然,这假设所有必需的更改都已正确合并到您的主服务器中。自项目设置以来,我没有从我当地的主人那里撤离,因为所有的合并(从开发到掌握)都是在GitHub上处理的,我一直在研究新的分支,后来又与开发合并。
所以,重申Hudson的上述步骤:
git checkout master
git pull
(在这里,我更新了README以进行提交更改,例如" Heroku部署[日期,时间]"
git add .
git commit -am "xxxyyzzz"
git push heroku master
heroku run rake db:migrate
heroku restart
答案 5 :(得分:3)
尝试:
heroku status
这返回以下内容,这确认问题出在heroku API上(而不是我的应用!):
“该API遇到延迟。这可能会导致添加新域,新发行版和其他此类操作的延迟。目前,工程师正在研究此问题。”
答案 6 :(得分:2)
当发生这种情况时,我会推送以前的提交哈希,如:
git push some-heroku-app-name ee3bca189acec89f5e9b098692ab6cee386a8f25:master --force
然后我像这样重新推大师:
git push some-heroku-app-name master:master
答案 7 :(得分:0)
我知道,我知道,很傻,但它发生在我身上,所以我向其他人发出警告:确保你推送的应用程序与你正在检查更改的应用程序相同。
在我的情况下,我正在推动升级,然后在生产中运行shell而不理解为什么静态文件没有改变。
(首先是一个真正的问题,当我推出一个新版本时,静态文件没有改变,但它可能只是一次推动侥幸,而且它只让我在圈子里待了一个小时,因为我正在测试错误的应用程序。)
答案 8 :(得分:0)
如果您正在使用Java,请不要忘记在推送之前重建项目。
如果是Gradle:
gradlew clean install
答案 9 :(得分:0)
有同样的问题,对我有用的是:使用随机消息进行提交然后按
git commit -m"random message"
git push heroku master
答案 10 :(得分:0)
我的可执行文件名已更改但我忘记更改 Procfile 中的名称。因此,虽然所有文件都在heroku中正确更新,但同样的旧可执行文件正在运行。
我用了
heroku local
从命令行帮助跟踪该问题。
答案 11 :(得分:0)
同样的问题,我使用heroku git:remote命令将一个遥控器添加到我的本地存储库,然后推送它。
heroku git:remote -a your-heroku-app
git push heroku master
答案 12 :(得分:0)
多次发生同一问题。如果清除浏览器历史记录或在隐身窗口中打开应用程序,对我有用。