Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.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 push部署到heroku后,文件夹将清空_Git_Heroku - Fatal编程技术网

通过git push部署到heroku后,文件夹将清空

通过git push部署到heroku后,文件夹将清空,git,heroku,Git,Heroku,我在本地电脑上有一个nodejs项目。里面有一个books文件夹,在这个文件夹中,书籍作为文件写入(在生产服务器上工作时) 我通过git push heroku master将代码放到生产服务器(heroku上)。我还向books目录添加了一个.gitignore文件,其中包含以下内容,git可以忽略此books目录中的任何文件/文件夹: !.gitignore 在我看来,这种模式应该告诉git不要在下一次git推送时覆盖生产服务器上的books文件夹内容,但要确保文件夹本身存在(因为它存在于

我在本地电脑上有一个nodejs项目。里面有一个books文件夹,在这个文件夹中,书籍作为文件写入(在生产服务器上工作时)

我通过git push heroku master将代码放到生产服务器(heroku上)。我还向books目录添加了一个.gitignore文件,其中包含以下内容,git可以忽略此books目录中的任何文件/文件夹:

!.gitignore
在我看来,这种模式应该告诉git不要在下一次git推送时覆盖生产服务器上的books文件夹内容,但要确保文件夹本身存在(因为它存在于本地计算机上,并且是空的)

使用生产服务器的人员制作一些书籍,然后作为文件保存到books/目录中

问题是,当我在本地机器上执行git-push-heroku-master时,服务器上books目录的内容仍然被删除

发生这种情况的原因有两个:

  • heroku会在推送之前自动清理所有文件
  • 如果不是(1),那么我仍然不能正确地写.gitignore
  • 任何人建议在下一次git推送heroku master时,强制heroku生产服务器上的books文件夹不要丢失其内容。?

    丢失的书籍 这与您的Git忽略无关(尽管它们似乎是错误的,请参见下文)

    和大多数PaaS提供商一样,Heroku也提供服务。每次部署时,写入磁盘的任何内容都将丢失

    Heroku推荐的一个流行选项是

    .gitignore
    模式 要让Git忽略
    books/
    目录中的文件,根
    目录中类似于这样的内容。gitignore
    应该做到以下几点:

    /books/*
    
    除非您有其他未与我们共享的忽略,否则您当前的规则只是说不要忽略
    books/.gitignore
    ,但它没有说要忽略该目录中的其余文件

    我见过的在Git中保持“空”目录的最常用方法是向其中添加一个空的
    .gitcept
    文件