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

问题描述:

我想部署Heroku应用程序,该应用程序将使用git push -u heroku master进行理想的配置。但是,只有在有任何未完成的提交被推送给主设备时,这才会有效。无需更改代码即可重新部署Heroku应用程序

如何在无需推送的情况下重新部署应用程序?我试图git push -u heroku master -f并仍然得到同样低于

​​

PS:我也想保留现有的应用程序,这意味着我不能使用这个答案的https://stackoverflow.com/a/22043184/968442

+0

这听起来像是一个[XY问题](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。通过重新部署相同的代码,您希望实现什么目标? – Chris

+0

我改变了少数配置文件,这个配置文件值得重新部署但没有提交 – nehemiah

+0

[Setting a config var](https://devcenter.heroku.com/articles/config-vars#setting-up-config-vars-for -a-deployed-application)会导致应用程序重新启动。它应该无需重新部署即可生效。你可以说得更详细点吗? – Chris

通常设定一个配置变种会导致您的应用程序重新启动。在大多数情况下,这样做后不需要重新部署。

如果你真的需要触发新的部署中,可以添加新的空承诺,然后推到Heroku的一次:

git commit --allow-empty -m "Trigger Heroku deploy after enabling collectstatic" 
git push heroku master 

新的空承诺是有规律的提交。它有一个散列,一个作者,一个时间戳等等。它将和它的父代有相同的树。这应该会导致Heroku再次使用与之前提交相同的代码来构建您的应用程序slug。

这有点尴尬,但它的工作原理。

+0

听起来够公平,做这份工作。现在我开始尝试备份/恢复存储库('.git')以隐藏来自github的提交。 – nehemiah

+0

@itsneo,我不会打扰。这是一个丑陋的提交,但是如果你继续在上一次提交之前编写代码,那么下一次就必须强制推送到Heroku。这不是一个很好的习惯,虽然它可能有时是必要的... – Chris

+0

即使'git commit --allow-empty'我从Heroku收到'一切都是最新的'... –

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

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