将不在git repo中的资产推送到heroku

时间:2014-11-04 08:26:35

标签: git heroku github

我有一个网络应用程序。在公共文件夹中应该有资源(内置js / images / index.html)。

我不想将这些资产存储在我的git仓库中(因此将 public 添加到regulqr .gitingore中),所以我不会将其复制到那里然后部署。

问题是如何正确实施此工作流程?

我想做的事情(这将由一些自动脚本完成):

  1. 从.gitingore中删除公开文件夹(所以现在资产可以是 添加到git)
  2. 提交此更改(新的.gitingore和资产)
  3. git push heroku -f
  4. git reset --hard HEAD~1(返回heroku部署之前的状态)
  5. 这种方法有什么问题?

1 个答案:

答案 0 :(得分:1)

这种做法不是一个好主意。实际上,重置数据库将导致本地数据库历史记录与Heroku历史记录不同。

首次部署后,后续部署将失败,因为推送不是快进。 git将要求您从Heroku中提取更改(有效地将资产合并到您的仓库中)。否则,每次推送都需要--force,但这不是一个好方法,它会增加错误地覆盖远程存储库的机会。

我的建议是,如果你不想要资源库中的资产,那么将它们从Heroku中完全移开。例如,您可以忽略该文件夹,并在Amazon S3或CDN上部署资产。您将获得在Heroku应用程序之外拥有资源并通过CDN服务的优势。