我的应用程序中有一个目录,其中包含已编译的文件(特别是在 rails 应用程序中的 public/assets 文件夹,其中包含从 CoffeeScript/Sass 文件编译的 JS/CSS 版本)。
我不想完全忽略该目录,因为我需要最新的编译版本存在于 respositry 中,我宁愿 git 不跟踪目录中文件的所有更改,因为我不想要我的 git 存储库随着我不关心的文件历史而不断增长。
这可能吗?我想这样做是不是疯了?
我的应用程序中有一个目录,其中包含已编译的文件(特别是在 rails 应用程序中的 public/assets 文件夹,其中包含从 CoffeeScript/Sass 文件编译的 JS/CSS 版本)。
我不想完全忽略该目录,因为我需要最新的编译版本存在于 respositry 中,我宁愿 git 不跟踪目录中文件的所有更改,因为我不想要我的 git 存储库随着我不关心的文件历史而不断增长。
这可能吗?我想这样做是不是疯了?
是的,你对 IMO 编译对象的版本很疯狂,但 Heroku 似乎也很疯狂。
在这种情况下,我会将部署过程包装在一个脚本中,以:
请注意,您仍然可以在 GC 清除之前的任何时间签出分支并将其再次前滚到已部署的提交,只要您提供一些方法来跟踪它(带有提交 SHA 的注释会起作用),如果你为时已晚,你仍然可以从源代码复制构建。
好的,所以如果您有多个存储库,这显然会失败。我看不到解决此问题的方法,但是您可以让一个主/部署 repo 运行类似于 CI 环境的东西。
仅将源代码定期(非强制)推送到主部署存储库,并让它自动执行分支/编译/部署/丢弃步骤。例如,如果您想使用主存储库在工作环境之间同步更改而不总是部署,您可以让它仅在推送标签时运行部署序列。