1

我的应用程序中有一个目录,其中包含已编译的文件(特别是在 rails 应用程序中的 public/assets 文件夹,其中包含从 CoffeeScript/Sass 文件编译的 JS/CSS 版本)。

我不想完全忽略该目录,因为我需要最新的编译版本存在于 respositry 中,我宁愿 git 不跟踪目录中文件的所有更改,因为我不想要我的 git 存储库随着我不关心的文件历史而不断增长。

这可能吗?我想这样做是不是疯了?

4

1 回答 1

1

是的,你对 IMO 编译对象的版本很疯狂,但 Heroku 似乎也很疯狂。

在这种情况下,我会将部署过程包装在一个脚本中,以:

  1. 分支
  2. 编译
  3. 提交编译的资产(ick)
  4. 力推
  5. 重置本地分支 HEAD 以便将分支点保留为标记,但是可以对已编译资产的孤立提交进行垃圾收集
  6. 切换回原来的分支

请注意,您仍然可以在 GC 清除之前的任何时间签出分支并将其再次前滚到已部署的提交,只要您提供一些方法来跟踪它(带有提交 SHA 的注释会起作用),如果你为时已晚,你仍然可以从源代码复制构建。


好的,所以如果您有多个存储库,这显然会失败。我看不到解决此问题的方法,但是您可以让一个主/部署 repo 运行类似于 CI 环境的东西。

仅将源代码定期(非强制)推送到主部署存储库,并让它自动执行分支/编译/部署/丢弃步骤。例如,如果您想使用主存储库在工作环境之间同步更改而不总是部署,您可以让它仅在推送标签时运行部署序列。

于 2012-10-04T14:46:07.763 回答