Laravel 如何避免自动拉取请求中的符号链接破坏?

Laravel 如何避免自动拉取请求中的符号链接破坏?,laravel,git,gitignore,symlink,Laravel,Git,Gitignore,Symlink,我在Windows10上的一个流浪家庭环境中有一个Laravel项目。 我正在将该项目部署到Apache托管服务。为了使Laravel存储发挥作用,我使用php artisan storage:link创建了一个链接,该链接在/public中创建了一个名为storage的链接,指向/storage/app/public。 每次我将更改推送到源代码主存储库时,宿主都会自动为我的项目拉取源代码主存储库,并且在发生这种情况时,存储链接会更改到目录。之后,服务器找不到任何上传的照片,我必须删除/publ

我在Windows10上的一个流浪家庭环境中有一个Laravel项目。 我正在将该项目部署到Apache托管服务。为了使Laravel存储发挥作用,我使用
php artisan storage:link
创建了一个链接,该链接在
/public
中创建了一个名为storage的链接,指向
/storage/app/public
。 每次我将更改推送到源代码主存储库时,宿主都会自动为我的项目拉取源代码主存储库,并且在发生这种情况时,存储链接会更改到目录。之后,服务器找不到任何上传的照片,我必须删除
/public/storage
目录以重新创建符号链接

我在公共目录中创建了一个
.gitignore
文件,以避免Git更改链接的任何内容

/public/.gitignore

storage 
!.gitignore

我希望每次Git pull在服务器中自动进行时,链接都保持不变。

因为公共/存储文件夹跟踪了内容,忽略它不会有任何效果

这将适用于文件:

 git update-index --skip-worktree -- afile
这应该可以抵抗git拉动
的阻力

但你想这样做,这不是小事。
最好首先确保存储库中的存储未被跟踪(版本化)

报告补充说:

我联系了主机支持人员,他们告诉我应该忽略存储链接,在需要的地方创建链接

所以我删除了Git上已经存在的存储链接,然后推送更改,再次拉拽,在生产中创建了链接,现在它开始工作了


/public/storage
不是文件夹,而是指向文件夹的链接
/storage/app/public
@RicardoBecerraEnríquez您正在使用哪个版本的Windows Git?应该保留/还原symklink,而不是将其转换为文件夹。我的开发环境中有版本2.18.0.windows.1,而生产环境中有版本2.0.0。@RicardoBecerraEnríquez如果生产环境是带有Git 2.0的windows,我一点也不奇怪。有机会用Git 2.22测试一下吗?嗨,VonC,我联系了主机支持,他们告诉我应该忽略存储链接,创建我需要的链接,所以我删除了Git上已经存在的存储链接,然后推动更改,再次拉动,在生产中创建链接,现在它开始工作了。