git push heroku master说“一切都是最新的”,但应用程序不是最新的

问题描述 投票:49回答:12

我在Heroku上有一个运行旧代码的应用程序。我做了一个小小的改变,并做出了改变。然后我跑了

git push heroku master

它会说

Fetching repository, done.
Everything up-to-date

但是,如果我去查看应用程序,那就是所有旧代码。大约15天前,我确实将网站恢复到Heroku中的另一个版本,但从那以后推送更新到它们并且它们起作用了。

为什么heroku没有从我的github存储库中获取最新文件?有没有办法只重置应用程序并再次从github推送文件?我在数据库中有生产数据,所以我不想触摸它。

提前致谢!!

git github heroku push git-push
12个回答
69
投票

请确认您当前的分支是主人。

 git branch 

如果指针未指向主控,则检查主分支

git checkout master

提交您的更改并尝试推送到heroku

git commit -am "xxxyyzzz"    
git push heroku master

0
投票

有同样的问题,对我有用的是:用随机消息进行提交然后推送

git commit -m"random message"

git push heroku master

0
投票

我的可执行文件名已更改,但我忘了在Procfile中更改名称。因此,虽然所有文件都在heroku中正确更新,但同样的旧可执行文件正在运行。我使用命令行中的heroku local来帮助跟踪该问题。


0
投票

同样的问题,我使用heroku git:remote命令向我的本地存储库添加了一个远程命令,然后将其推送。

heroku git:remote -a your-heroku-app

git push heroku master

49
投票

当你运行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

11
投票

我愿意打赌你忘了运行git add .然后git commit -m 'xyz'


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
投票

虽然这是一个老问题,但是我想更新一下对我来说有什么用(新手)应该有人遇到这个:

按照这里的说明(来自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

祝好运!


3
投票

尝试:

heroku status

这返回了以下内容,确认问题出在heroku API上(而不是我的应用程序!):

“API正在经历延迟。这可能会导致添加新域名,新版本和其他此类行为的延迟。目前,工程师正在调查此问题。”


2
投票

当发生这种情况时,我推送以前的提交哈希,如:

git push some-heroku-app-name ee3bca189acec89f5e9b098692ab6cee386a8f25:master --force

然后我像这样重新推大师:

git push some-heroku-app-name master:master

0
投票

我知道,我知道,愚蠢,但它发生在我身上,所以我向别人发出警告:确保你推送的应用程序与你正在检查更改的应用程序相同。

在我的情况下,我正在推动升级,然后在生产中运行shell而不理解为什么静态文件没有改变。

(它开始时是一个真正的问题,当我推出一个新版本时,静态文件没有改变,但它可能是一个推动侥幸,它只让我在圈子里再进行一个小时,因为我正在测试错误的应用程序。 )


0
投票

如果您使用的是Java,请不要忘记在推送之前重建项目。

在Gradle的情况下:

gradlew clean install
© www.soinside.com 2019 - 2024. All rights reserved.