Php 如何强制git不替换文件夹内容?

Php 如何强制git不替换文件夹内容?,php,git,cloudcontrol,Php,Git,Cloudcontrol,我在cloudcontrol.com上主持我的php项目,在我的项目中,我有一个静态文件夹,在其中保存用户配置文件图片,如下所示: uploads/profile/userpic1.jpg uploads/profile/userpic2.jpg uploads/profile/userpic2.jpg I.gitignore.gitignore文件的配置文件文件夹中的所有文件: * !.gitignore 在我的本地环境中,当我进行一些测试时,我会将一些图片上传到该文件夹中。 在我的生产环

我在cloudcontrol.com上主持我的php项目,在我的项目中,我有一个静态文件夹,在其中保存用户配置文件图片,如下所示:

uploads/profile/userpic1.jpg
uploads/profile/userpic2.jpg
uploads/profile/userpic2.jpg
I.gitignore.gitignore文件的配置文件文件夹中的所有文件:

*
!.gitignore
在我的本地环境中,当我进行一些测试时,我会将一些图片上传到该文件夹中。 在我的生产环境中,用户还可以更改其个人资料图片并将其保存在该文件夹中

我的问题是:

每当我将任何更新推送到生产服务器时,我都会丢失服务器上概要文件目录中的所有文件!! 似乎git(或cloudcontrol)取代了概要文件目录,而不仅仅是更新其内容,而不涉及旧文件/图片

有什么建议我该怎么解决这个问题。我认为这只是一个问题,我尽了一切努力让它工作,但我做不到。我对Git和PaaS有些陌生


谢谢

cloudControl与大多数云应用程序宿主一样,在部署时替换完整的应用程序文件夹。这样做通常是为了允许水平扩展,并确保每个部署都基于相同的(空)状态

另请参见以下文件:

非持久文件系统 TL;博士:

  • 每个容器都有自己的文件系统
  • 文件系统不是持久的
  • 不要将上载存储在文件系统上
cloudControl平台上的部署可以访问可写文件系统。然而,这个文件系统不是持久的。写入的数据可能在将来的请求中再次访问,也可能无法访问,这取决于这些数据如何跨可用容器路由请求,并在每次部署后删除。这确实包括手动触发的部署,但也包括在正常操作期间由平台本身执行的重新部署

对于客户上传(例如用户配置文件图片),我们建议使用对象存储,如Amazon S3或GridFS功能,作为


因此,如果您想动态存储文件,您必须寻找一个单独的解决方案。

cloudControl与大多数云应用程序宿主一样,在部署时替换完整的应用程序文件夹。这样做通常是为了允许水平扩展,并确保每个部署都基于相同的(空)状态

另请参见以下文件:

非持久文件系统 TL;博士:

  • 每个容器都有自己的文件系统
  • 文件系统不是持久的
  • 不要将上载存储在文件系统上
cloudControl平台上的部署可以访问可写文件系统。然而,这个文件系统不是持久的。写入的数据可能在将来的请求中再次访问,也可能无法访问,这取决于这些数据如何跨可用容器路由请求,并在每次部署后删除。这确实包括手动触发的部署,但也包括在正常操作期间由平台本身执行的重新部署

对于客户上传(例如用户配置文件图片),我们建议使用对象存储,如Amazon S3或GridFS功能,作为


因此,如果您想动态存储文件,您必须寻找一个单独的解决方案。

cloudControl与大多数云应用程序宿主一样,在部署时替换完整的应用程序文件夹。这样做通常是为了允许水平扩展,并确保每个部署都基于相同的(空)状态

另请参见以下文件:

非持久文件系统 TL;博士:

  • 每个容器都有自己的文件系统
  • 文件系统不是持久的
  • 不要将上载存储在文件系统上
cloudControl平台上的部署可以访问可写文件系统。然而,这个文件系统不是持久的。写入的数据可能在将来的请求中再次访问,也可能无法访问,这取决于这些数据如何跨可用容器路由请求,并在每次部署后删除。这确实包括手动触发的部署,但也包括在正常操作期间由平台本身执行的重新部署

对于客户上传(例如用户配置文件图片),我们建议使用对象存储,如Amazon S3或GridFS功能,作为


因此,如果您想动态存储文件,您必须寻找一个单独的解决方案。

cloudControl与大多数云应用程序宿主一样,在部署时替换完整的应用程序文件夹。这样做通常是为了允许水平扩展,并确保每个部署都基于相同的(空)状态

另请参见以下文件:

非持久文件系统 TL;博士:

  • 每个容器都有自己的文件系统
  • 文件系统不是持久的
  • 不要将上载存储在文件系统上
cloudControl平台上的部署可以访问可写文件系统。然而,这个文件系统不是持久的。写入的数据可能在将来的请求中再次访问,也可能无法访问,这取决于这些数据如何跨可用容器路由请求,并在每次部署后删除。这确实包括手动触发的部署,但也包括在正常操作期间由平台本身执行的重新部署

对于客户上传(例如用户配置文件图片),我们建议使用对象存储,如Amazon S3或GridFS功能,作为


因此,如果你想动态存储文件,你必须寻找一个单独的解决方案。

这就是大多数使用git的部署应用程序的工作原理。在任何情况下,git都不是最适合版本化资产的,它应该主要用于代码。话虽如此,您仍然可以使用
.gitignore
,只要您在想要版本化的内容和不想要版本化的内容之间有一个明确的标识符。假设您自己的所有文件都以单词
version
开头,您可以这样做

/public/assets/images/users/*
!/public/assets/images/users/version*
这就是大多数德布罗的想法