git获取/拉取文件";变成「;符号链接

git获取/拉取文件";变成「;符号链接,git,Git,我有一个私有的git repo,通过ssh访问。(例如git@myhost.com:/home/git) 其中有一个PHP项目。我的开发和部署机器都是linux。它可以正常工作大约半年 但现在,当我运行git pull(或clone到其他地方)时,项目根目录中的文件“变成”符号链接 很难解释。因此,请粘贴以下内容: ls-al 部分输出: drwxr-xr-x 10 nginx nginx 4096 Jan 20 22:08 App drwxr-xr-x 10 nginx nginx 4096

我有一个私有的git repo,通过ssh访问。(例如
git@myhost.com:/home/git

其中有一个PHP项目。我的开发和部署机器都是linux。它可以正常工作大约半年

但现在,当我运行
git pull
(或
clone
到其他地方)时,项目根目录中的文件“变成”符号链接

很难解释。因此,请粘贴以下内容:


ls-al

部分输出:

drwxr-xr-x 10 nginx nginx 4096 Jan 20 22:08 App
drwxr-xr-x 10 nginx nginx 4096 Jan 20 22:08 .git
drwxr-xr-x 10 nginx nginx 4096 Jan 20 22:08 Core
lrwxrwxrwx 10 nginx nginx 4096 Jan 20 22:06 index.php -> <?phpdefine('APP_PATH','./App');define(..........(FULL content OF index.php)
lrwxrwxrwx 10 nginx nginx 4096 Jan 20 22:08 .gitignore -> # ide.idea#temp files_runtime*.log..........(FULL content OF gitignore)
drwxr-xr-x 10 nginx nginx 4096 Jan 20 22:08 App
drwxr-xr-x 10 nginx nginx 4096 Jan 20 22:08.git
drwxr-xr-x 10 nginx nginx 4096 Jan 20 22:08核心

lrwxrwxrwx 10 nginx nginx 4096 Jan 20 22:06 index.php->您可以尝试确认所有这些文件都是符号链接:

 git ls-files -s ./aFile
 120000 1596f9db1b9610f238b78dd168ae33faa2dec15c 0       aFile
您应该在索引中以
120000
模式查看它们,引用实际对象内容的散列,您可以通过以下方式查看:

git cat-file -p 1596f9db1
见“

您可以尝试以这种方式还原所有文件(从索引中删除文件,使用
cat file-p
命令的内容重新创建)


但我宁愿检查回购的历史记录,看看是否无法重置为将这些文件记录为实际文件而不是符号链接的状态。

我想我找到了原因

我在同一个项目上同时使用WebStorm和PhpStorm

两个IDE使用不同版本的插件和不同的工作空间STAU(打开的文件等)

因此.idea目录必须不同,我制作了另一个目录,将项目根目录中除.idea之外的所有文件和文件夹软链接到另一个目录

通常我使用PhpStrom的Git gui上传文件,几周前,我使用WebStorm推送提交

最后,我使用以下方法取回我的文件:

find-maxdepth 1-类型l-execbash-c-t'mv“{}”“{}”.bak;readlink“{}.bak”>“{}”;rm-f“{}.bak”\