我在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
,也无法修复它们。
非常感谢任何帮助。
答案 0 :(得分:2)
您的一个配置文件已将关闭 core.symlinks
设置。要找出设置的位置,请运行:
for location in global system local; do
git config -l --$location |& grep -q symlinks && echo $location
done
无论是在全局,系统还是本地设置,都会输出。
全局位置通常为$HOME/.gitconfig
,系统位置通常为/etc/gitconfig
,本地位置在当前存储库中通常为.git/config
。
删除该行,Git应该能够正确创建符号链接。