2016-12-27 94 views
8

我想部署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

回答

18

通常設定一個配置變種會導致您的應用程序重新啓動。在大多數情況下,這樣做後不需要重新部署。

如果你真的需要觸發新的部署中,可以添加新的空承諾,然後推到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收到'一切都是最新的'... –

相關問題