0

我在 Cloud9 中有我的开发环境,我使用 git 推送到 Heroku。
我希望部署命令不会删除 Heroku 环境中的一些文件夹。
所以我在我的.gitignore文件中添加了这些行

folder/to-ignore1
folder/to-ignore2

... 等等

然后我可以在heroku的这些文件夹中创建内容,到目前为止没问题。
但是当我再次尝试同步我的开发文件时,git 似乎删除了这些文件夹及其内容。
我尝试了每一个变化,比如

/folder/to-ignore1/
folder/to-ignore1/
/folder/to-ignore1
folder/to-ignore1
/folder/to-ignore1/*
folder/to-ignore1/*

但似乎没有任何效果。每次部署我都会丢失这些文件。


Obs.:我也执行了
git rm -r --cached 'files/folders'
命令。

4

2 回答 2

2

这是heroku工作人员告诉我的:

(引用)

值得记住的是,Heroku 文件系统是短暂的——这意味着在 dyno 运行时对文件系统的任何更改只会持续到该 dyno 关闭或重新启动。每个测功机都使用最新部署的文件系统的干净副本启动。

当您重新启动应用程序时,对文件系统的任何更改都将丢失,因为新的测功机将被引导。我们建议不要使用文件系统进行持久存储,而是使用 Postgres(用于数据)等数据库插件或 AWS S3(用于静态文件)等专用文件存储服务。如果您不想使用 AWS 设置帐户来创建 S3 存储桶,我们这里还有可能满足您需求的插件https://elements.heroku.com/addons

(结束报价)

感谢大佬们的关注。

于 2017-01-10T13:27:11.133 回答
1

Git 本身不应该删除未跟踪的文件夹。

只有在git clean -fd执行时才会这样做,就像在这个heroku Rakefile中一样

Cloud9 在其“通过命令行部署”中列出了 Heroku,并参考了Heroku 文档。在部署过程中检查是否执行了任何其他命令(如一些接收后挂钩),这可能解释对您的远程工作区进行的“清理”。

于 2017-01-09T20:23:01.653 回答