从 git 拉出时无法识别符号链接

Symlinks not recognized when pulled from git

我在 git 中有一个项目,当我第一次从 git 向下链接时,符号链接不起作用。据我所知,它们是正确制作的符号链接。如果我删除符号链接并自己重新创建它们,git 也会将它们视为与其拥有的符号链接相同。

Linux 或 Git 中是否有设置阻止来自 git 的符号链接工作?

用于创建符号链接的命令:

ln -s /absolute/path/to/dest symlink-name

一些附加信息

使用 ls -lah 将符号链接列为常规文件:

-rw-rw-r--.  1 vagrant vagrant   28 Nov 13 09:01 dep
-rw-rw-r--.  1 vagrant vagrant   28 Nov 13 09:01 drupal
-rw-rw-r--.  1 vagrant vagrant   20 Nov 13 09:01 drush
-rw-rw-r--.  1 vagrant vagrant   32 Nov 13 09:01 drush.complete.sh
-rw-rw-r--.  1 vagrant vagrant   29 Nov 13 09:01 drush.launcher
-rw-rw-r--.  1 vagrant vagrant   24 Nov 13 09:01 drush.php
-rw-rw-r--.  1 vagrant vagrant   33 Nov 13 09:01 php-parse
-rw-rw-r--.  1 vagrant vagrant   26 Nov 13 09:01 phpunit
-rw-rw-r--.  1 vagrant vagrant   22 Nov 13 09:01 psysh

然而,如果我手动删除并重新创建 dep 符号链接,它会正确显示。 Git 仍然认为这是相同的,没有进行任何更改。

lrwxrwxrwx.  1 vagrant vagrant   28 Nov 13 09:33 dep -> ../deployer/deployer/bin/dep

在损坏的符号链接上将权限形式 -rw-rw-r-- 更改为 lrwxrwxrwx,也没有修复它们。

非常感谢任何帮助。

您的一个配置文件已关闭 core.symlinks 设置。要找出设置的位置,运行:

for location in global system local; do
    git config -l --$location |& grep -q symlinks && echo $location
done

这将输出是在全局、系统还是本地位置设置。

全局 位置通常为 $HOME/.gitconfig系统 位置通常为 /etc/gitconfiglocal 位置通常是 .git/config 在当前存储库中。

删除该行,Git 应该能够正确创建符号链接。