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

Dar*_*er5 55 git push github heroku git-push

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

git push heroku master
Run Code Online (Sandbox Code Playgroud)

它会说

Fetching repository, done.
Everything up-to-date
Run Code Online (Sandbox Code Playgroud)

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

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

提前致谢!!

Kan*_*n S 72

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

 git branch 
Run Code Online (Sandbox Code Playgroud)

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

git checkout master
Run Code Online (Sandbox Code Playgroud)

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

git commit -am "xxxyyzzz"    
git push heroku master
Run Code Online (Sandbox Code Playgroud)

  • `git push heroku yourlocalbranch:master`如果你想将你的本地非主分支推送到heroku master (135认同)
  • 带着同样的问题来到这里@danny 解决了 hudson 的解决方案。 (3认同)

lev*_*evi 53

当你运行时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
Run Code Online (Sandbox Code Playgroud)

2.从您的实际分支推送您的更改

git push heroku your_feature_branch:master
Run Code Online (Sandbox Code Playgroud)


ste*_*och 11

我愿意打赌你忘了git add .跟着跑了git commit -m 'xyz'吗?


tec*_*ams 9

我有一个类似的问题,绝不会在heroku上看到我的更改.为了重新确认自己,我甚至从heroku中取出了克隆,这显然是最新的.

我只能通过以下方法解决我的问题:

第1步:从中创建一个新分支master

git checkout -b new_branch
Run Code Online (Sandbox Code Playgroud)

第2步:只需在任何文件中添加注释即可进行新提交,然后:

git add .
git commit -m "Just a test commit to push new branch to heroku"
Run Code Online (Sandbox Code Playgroud)

第3步:将新分支推送到heroku.

git push heroku new_branch:master
heroku restart
Run Code Online (Sandbox Code Playgroud)

您现在可以在heroku上成功查看更改.

  • 这个 `git push heroku new_branch:master` 有帮助 (3认同)

Vla*_*cic 6

发生这种情况时,我将之前的提交哈希推送到 master,如下所示:

git push some-heroku-app-name SOME-COMMIT-HASH:master --force
Run Code Online (Sandbox Code Playgroud)

然后我像这样重新推送 master :

git push some-heroku-app-name master:master
Run Code Online (Sandbox Code Playgroud)


小智 5

尽管这是一个老问题,但如果其他人遇到这个问题,我想更新对我(新手)有用的内容:

按照此处的说明(来自 Hudson)后,最终对我起作用的是在检查“master”分支后执行“git pull”。也许“git push heroku master”只推出 master 的本地分支?

当然,这假设所有必需的更改都已正确合并到您的主版本中。自从项目建立以来,我就没有从本地的 master 中拉出,因为所有合并(从开发到 master)都是在 GitHub 上处理的,而且我一直在开发后来与开发合并的新分支。

因此,重申 Hudson 的上述步骤:

git checkout master

git pull

(在这里,我更新了自述文件以进行更改以提交,例如“Heroku部署[日期,时间]”

git add .

git commit -am "xxxyyzzz"

git push heroku master

heroku run rake db:migrate

heroku restart

祝你好运!