从 git 拉出时无法识别符号链接
Symlinks not recognized when pulled from git
我在 git 中有一个项目,当我第一次从 git 向下链接时,符号链接不起作用。据我所知,它们是正确制作的符号链接。如果我删除符号链接并自己重新创建它们,git 也会将它们视为与其拥有的符号链接相同。
Linux 或 Git 中是否有设置阻止来自 git 的符号链接工作?
用于创建符号链接的命令:
ln -s /absolute/path/to/dest symlink-name
一些附加信息
- 符号链接最初是在 Mac 书籍上创建的,但由于 git 认为我新创建的符号链接(在 linux 上)相同,我怀疑这是问题所在。
- 第一次获取符号链接时,它们在 linux 上不起作用,但在其他 Mac 机器上它们起作用。
- 通过删除并重新创建符号链接来修复它们后,git 认为它们是相同的,因此它们不会在以后的拉动中被覆盖。
- 所有符号链接都指向 .phar 文件。
- linux机器是运行Ubuntu16.04或Centos 7
使用 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/gitconfig
,local 位置通常是 .git/config
在当前存储库中。
删除该行,Git 应该能够正确创建符号链接。
我在 git 中有一个项目,当我第一次从 git 向下链接时,符号链接不起作用。据我所知,它们是正确制作的符号链接。如果我删除符号链接并自己重新创建它们,git 也会将它们视为与其拥有的符号链接相同。
Linux 或 Git 中是否有设置阻止来自 git 的符号链接工作?
用于创建符号链接的命令:
ln -s /absolute/path/to/dest symlink-name
一些附加信息
- 符号链接最初是在 Mac 书籍上创建的,但由于 git 认为我新创建的符号链接(在 linux 上)相同,我怀疑这是问题所在。
- 第一次获取符号链接时,它们在 linux 上不起作用,但在其他 Mac 机器上它们起作用。
- 通过删除并重新创建符号链接来修复它们后,git 认为它们是相同的,因此它们不会在以后的拉动中被覆盖。
- 所有符号链接都指向 .phar 文件。
- linux机器是运行Ubuntu16.04或Centos 7
使用 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/gitconfig
,local 位置通常是 .git/config
在当前存储库中。
删除该行,Git 应该能够正确创建符号链接。