无需更改代码即可重新部署Heroku应用程序

neh*_*iah 55 heroku

我想部署一个Heroku应用程序,理想情况下使用它git push -u heroku master.但是,只有在有任何挂起的提交被推送到master时才会有效.

如何在没有任何需要推动的情况下重新部署应用程序?我试过git push -u heroku master -f,下面仍然如此

Branch master set up to track remote branch master from heroku.
Everything up-to-date
Run Code Online (Sandbox Code Playgroud)

PS:我也想保留现有的应用程序,这意味着我无法利用这个答案/sf/answers/1543022911/

Chr*_*ris 81

通常设置config var会导致重新启动应用程序.在大多数情况下,执行此操作后无需重新部署.

如果您确实需要触发新部署,则可以添加新的空提交,然后再次推送到Heroku:

git commit --allow-empty -m "Trigger Heroku deploy after enabling collectstatic"
git push heroku master
Run Code Online (Sandbox Code Playgroud)

新的空提交是常规提交.它有一个哈希,一个作者,一个时间戳等.它将与其父树具有相同的树.这应该会导致Heroku使用与上一次提交相同的代码再次构建您的app slug.

这有点尴尬,但它确实有效.

  • 啊,我看到了这个问题!我在一个不同的本地分支(比`master`).所以我必须执行:`git push -f heroku the_branch_i_changed:master`. (4认同)
  • 即使使用“git commit --allow-empty”,我也会从 Heroku 收到“一切都是最新的”...... (3认同)
  • 只需执行 `git commit --amend; git push heroku master -f` 无需实际更改,除非您对重写公共分支历史有严格的规则。 (2认同)
  • 我的 JS 资产是在部署过程中构建的,它们依赖于 ENV 变量。因此,即使我的应用程序在设置 ENV var 时重新启动,我的 JS 也不会被重建,除非我进行部署。...只是指出这一点,因为存在需要重新部署的合法场景 (2认同)

Har*_*val 36

您也可以从 UI 中完成!

  1. 登录到您的Heroku仪表板并转到deploy部分
  2. 查找Manual deploy选项

按下Deploy Branch按钮!

在此处输入图片说明

注意:您必须将您的应用程序连接到 GitHub 才能使用此选项(请参阅下面来自 Derek 的评论)。

  • 值得注意的是,您必须将应用程序连接到 GitHub 才能使用此选项。如果您使用 Heroku Git 部署方法而未将应用程序连接到其 GitHub 存储库,则如何手动部署并不是立即显而易见的。 (9认同)

red*_*dia 14

事实证明,Heroku 有一个名为 heroku release retry 的简洁插件,可以让您重试上次部署,而无需向存储库添加错误的提交。

// install plugin
heroku plugins:install heroku-releases-retry
// retry release
heroku releases:retry --app {your-app}
Run Code Online (Sandbox Code Playgroud)

来源:https ://www.darraghoriordan.com/2019/03/02/heroku-push-failed-force-rebuild


ric*_*ard 9

现在还有一个Heroku命令行的插件,允许你重新发布最近部署的slug.

请参阅https://www.npmjs.com/package/heroku-releases-retry