我在Heroku上有一个运行旧代码的应用程序。我做了一个小小的改变,并做出了改变。然后我跑了
git push heroku master
它会说
Fetching repository, done.
Everything up-to-date
但是,如果我去查看应用程序,那就是所有旧代码。大约15天前,我确实将网站恢复到Heroku中的另一个版本,但从那以后推送更新到它们并且它们起作用了。
为什么heroku没有从我的github存储库中获取最新文件?有没有办法只重置应用程序并再次从github推送文件?我在数据库中有生产数据,所以我不想触摸它。
提前致谢!!
请确认您当前的分支是主人。
git branch
如果指针未指向主控,则检查主分支
git checkout master
提交您的更改并尝试推送到heroku
git commit -am "xxxyyzzz"
git push heroku master
有同样的问题,对我有用的是:用随机消息进行提交然后推送
git commit -m"random message"
git push heroku master
我的可执行文件名已更改,但我忘了在Procfile中更改名称。因此,虽然所有文件都在heroku中正确更新,但同样的旧可执行文件正在运行。我使用命令行中的heroku local
来帮助跟踪该问题。
同样的问题,我使用heroku git:remote命令向我的本地存储库添加了一个远程命令,然后将其推送。
heroku git:remote -a your-heroku-app
git push heroku master
当你运行git push heroku master
时,git假设你正在从master中推送,所以如果你在其他分支中进行了更改,你将尝试推送你的master分支而不做任何更改。
你有两个选择
1.使用master修改你的更改并推送它们。
在实际分支中提交更改,然后将其与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
我愿意打赌你忘了运行git add .
然后git commit -m 'xyz'
?
我有一个类似的问题,绝不会在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上成功查看更改。
虽然这是一个老问题,但是我想更新一下对我来说有什么用(新手)应该有人遇到这个:
按照这里的说明(来自Hudson)之后,最终为我做的诀窍是在检查出“master”分支后进行“git pull”。也许“git push heroku master”只推出了master的本地分支?
当然,这假设所有必需的更改已正确合并到主服务器中。自项目设置以来,我没有从我当地的主人那里撤离,因为所有的合并(从开发到掌握)都是在GitHub上处理的,我一直在研究新的分支,后来又与开发合并。
所以,重申Hudson的上述步骤:
git checkout master
git pull
(在这里,我更新了README以进行提交更改,例如“Heroku deploy [date,time]”
git add .
git commit -am "xxxyyzzz"
git push heroku master
heroku run rake db:migrate
heroku restart
祝好运!
尝试:
heroku status
这返回了以下内容,确认问题出在heroku API上(而不是我的应用程序!):
“API正在经历延迟。这可能会导致添加新域名,新版本和其他此类行为的延迟。目前,工程师正在调查此问题。”
当发生这种情况时,我推送以前的提交哈希,如:
git push some-heroku-app-name ee3bca189acec89f5e9b098692ab6cee386a8f25:master --force
然后我像这样重新推大师:
git push some-heroku-app-name master:master
我知道,我知道,愚蠢,但它发生在我身上,所以我向别人发出警告:确保你推送的应用程序与你正在检查更改的应用程序相同。
在我的情况下,我正在推动升级,然后在生产中运行shell而不理解为什么静态文件没有改变。
(它开始时是一个真正的问题,当我推出一个新版本时,静态文件没有改变,但它可能是一个推动侥幸,它只让我在圈子里再进行一个小时,因为我正在测试错误的应用程序。 )
如果您使用的是Java,请不要忘记在推送之前重建项目。
在Gradle的情况下:
gradlew clean install