我已经接管了一个网站的管理,并有问题添加一个新的产品到网站。所有图像都存储在一个上传文件夹中,当使用旧开发人员创建的管理面板时,它有一个文件上传过程,可以将文件添加到该文件夹中。然而,对于一类产品,它不起作用。我可以通过Sequel Pro手动将产品信息添加到数据库中,一切都正常,除了显然没有办法将图片上传到代码所需的路径。我只是将它们添加到一个上传文件夹中,以遵循正确的路径,但是在.gitignore文件中列出了uploads/。
从.gitignore中删除上传内容会有什么负面影响吗?我担心它会覆盖现有的上传目录,然后可能会干扰现有的上传过程。我不知道为什么把上传放在gitignore的首位,但我相信其他开发者一定有他的理由。
发布于 2015-12-09 05:05:14
通常,uploads/不是代码所属的目录。它是从使用中产生的东西,并不是使用时需要的。在版本控制系统中,它经常被忽略的原因是不需要跟踪用户可能更改的所有更改。基于此,我不建议您停止忽略它。
因为Git将专门存储对象中的每个更改的副本,所以不忽略并提交此目录中的文件实际上可能是一个坏主意。您的存储库将会毫无意义地增长。您的gitignore文件也不太可能与您的实际问题有任何关系。
当从存储库安装到新位置时,可能没有创建uploads/目录,因为克隆时该目录不存在于存储库中,或者该目录的权限不允许在上传到此新类别时添加子目录。
对于第一个问题,考虑到Git不跟踪目录,它跟踪其中的文件。如果您的项目有一个空的和被忽略的uploads/目录,它将不会被提交,因此在克隆时也不会创建它。您必须记住在克隆时手动创建该目录,或者通常的做法是向该目录添加一个.gitkeep文件并提交该文件。这将导致在克隆时创建文件,并保留文件结构。您可以提交被忽略的文件,超过该提交的更改将继续被忽略。要做到这一点,请对git add使用-f/--force标志。
对于第二个问题,如果您的脚本试图在uploads/中创建一个新文件或子目录,请确保正在运行 script 的用户具有执行此操作的权限。用户是什么取决于你的系统,但应该很容易在伟大的谷歌机器上找到。
最后,提交此目录中的文件不应覆盖现有文件。匹配名称可能会让你在提取或提交新的更改时感到沮丧,但Git通常很好地警告或直接拒绝盲目地删除您的更改。
https://stackoverflow.com/questions/34164217
复制相似问题