Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将不属于git回购协议的资产推给heroku_Git_Heroku_Github - Fatal编程技术网

将不属于git回购协议的资产推给heroku

将不属于git回购协议的资产推给heroku,git,heroku,github,Git,Heroku,Github,我有一个网络应用程序。在public文件夹中应该有资产(buildjs/images/index.html) 我不想将这些资产存储在我的git回购中(因此,public被添加到regulqr.gitingore),所以我不想将其复制到那里然后部署 问题是如何正确实施此工作流 我想做的是(这将由一些自动脚本完成): 从.gitingore中删除public文件夹(这样现在就可以删除资源了 添加到git) 提交此更改(新建.gitingore和资产) git-push-heroku-f git重置—

我有一个网络应用程序。在public文件夹中应该有资产(buildjs/images/index.html)

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

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

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

  • 从.gitingore中删除public文件夹(这样现在就可以删除资源了
    添加到git)
  • 提交此更改(新建.gitingore和资产)
  • git-push-heroku-f
  • git重置——硬头~1(返回到heroku部署前的状态)

  • 这种方法有什么问题?

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

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


    我的建议是,如果您不想将资产放在存储库中,那么请将它们完全从Heroku移开。例如,您可以忽略该文件夹,并将资产部署到AmazonS3或CDN上。您可以利用Heroku应用程序之外的资源,并通过CDN为其提供服务。

    CND是其中一种方案,但无论如何,还有index.html,其中包含指向编译资源的链接(使用哈希名称),每次使用新资源时都会创建这些资源(将其存储在git中并不是什么大问题,但我想如何在git中只存储服务器代码)。对于所有这些问题,我还没有找到一个令人满意的答案。顺便说一句,这就是问题推——强制到heroku?我不需要此repo与我的开发状态完全一致(就所有提交而言)。我不会在任何时候退出。正如我所说,使用--force完全绕过git历史记录检查。
    --force不应作为标准工作流的一部分使用,它很容易被错误地完全覆盖(因此部署错误的版本)。默认情况下,不应使用
    --force
    ,它的存在是有原因的。