我应该从.gitignore中删除上传/吗?

时间:2015-12-08 19:20:34

标签: git file-upload

我已经接管了一个网站,并且在向网站添加新产品时遇到了问题。所有图像都存储在uploads文件夹中,当使用旧开发人员创建的管理面板时,它具有文件上载过程,可将文件添加到此文件夹。但是,对于一类产品,它不起作用。我可以通过Sequel Pro手动将产品信息添加到数据库中,一切正常,但显然无法将图片上传到代码所需的路径。我只是将它们添加到uploads文件夹以遵循正确的路径,但上传/列在.gitignore文件中。

从.gitignore删除上传/会有任何负面影响吗?我担心它会覆盖现有的uploads目录,然后可能会干扰现有的上传过程。 我不知道为什么上传首先包含在gitignore上,但我确信其他开发者必须有他的理由。

1 个答案:

答案 0 :(得分:0)

通常uploads/不是您的代码所属的目录。它是由使用产生的东西,不需要使用。它在版本控制系统中经常被忽略的原因是跟踪对用户可能改变的所有内容的更改并不是必需的。基于此,我建议你不要忽视它。

因为Git专门存储对象中每个更改的副本,所以不忽略和提交此目录中的文件实际上是一个坏主意。您的存储库将无缘无故地增长。您的gitignore文件也不太可能与您的实际问题有任何关系。

有可能在新位置从repo安装时未创建uploads/目录,因为克隆时它没有存在于repo中,或者该目录的权限不允许添加子目录当他们上传到这个新类别时。

对于第一个问题,请考虑Git不跟踪目录,它跟踪其中的文件。如果您的项目有一个空的并且忽略了uploads/目录,那么它将无法提交,因此在克隆时无法创建。您必须记住在克隆时手动创建此目录,或者通常的做法是将.gitkeep文件添加到目录并提交该文件。这将导致在克隆时创建文件,并保留文件结构。您可以提交被忽略的文件,并且将继续忽略该提交之外的更改。为此,请将-f/--force标记与git add一起使用。

对于第二个问题,如果您的脚本尝试在uploads/内创建新文件或子目录,请确保用户脚本正在运行,并且有权执行此操作。该用户的用途取决于您的系统,但应该可以在出色的Google计算机上轻松找到。

最后,提交此目录中的文件不应覆盖现有文件。匹配名称可能会让您在拉动或提交新更改方面感到沮丧,但Git通常会很好地警告或严重拒绝盲目地消除您的更改。