如何忽略git push上的公用文件夹?

时间:2019-03-31 12:05:38

标签: node.js heroku

我在Heroku上托管了一个Node.js项目,当我上传到Heroku时,我试图从推送中忽略public/文件夹。我在public/文件中包含了行.gitignore,这是我不想覆盖的文件夹,但是它不起作用。当我将Heroku推送到服务器上的public/文件夹中的所有图像时,都会被删除。

这是我的.gitignore

# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
firebase-debug.log*
# Dependency directories
node_modules/
public/

为什么会这样,我该如何预防?

2 个答案:

答案 0 :(得分:1)

  

当我将其推送到Heroku时,服务器中的所有图像都会被删除

我怀疑这些是用户上传的图像吗?该目录应该为ignored and untracked,但由于其ephemeral filesystem在Heroku上还不够。只要您的测功机重新启动,您所做的任何更改都会丢失。这种情况经常发生(at least once per day)。

Heroku建议使用storing user uploads on a third-party service like Amazon S3

答案 1 :(得分:0)

您也可以从git存储库中删除该文件夹。您是否使用过像git rm -r --cached your_folder/

这样的git命令

如果您不想再跟踪文件夹并将其保留在git存储库中,则需要像以前一样将文件夹添加到.gitignore文件中,然后需要使用

git update-index --assume-unchanged public/*

如果要再次跟踪文件夹,可以使用

git update-index --no-assume-unchanged public/*

this guide上有更多详细信息。