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

时间:2014-02-21 23:41:02

标签: git github heroku push git-push

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

git push heroku master

它会说

Fetching repository, done.
Everything up-to-date

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

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

提前致谢!!

13 个答案:

答案 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)

多次发生同一问题。如果清除浏览器历史记录或在隐身窗口中打开应用程序,对我有用。