从git

时间:2017-11-13 07:44:32

标签: linux git unix symlink

我在git中有一个项目,当我第一次从git符号链接时,符号链接不起作用。从我可以看到他们是正确的符号链接。如果我删除符号链接并自己重新创建它们,git也会将它们视为与它所具有的相同。

Linux或Git中是否存在一个设置,如果它们来自git,会阻止符号链接工作?

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

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

一些其他信息

  • 符号链接最初是在MacBook上创建的,但由于git认为我新创建的符号链接(在linux上)是相同的,我怀疑这是问题所在。
  • 第一次获取符号链接时,它们不能在linux上运行,而是在其他Mac机器上运行。
  • 通过删除并重新创建符号链接来修复符号链接后,git将它们看作是相同的,并且在将来的拉动中它们不会被覆盖。
  • 所有符号链接都是.phar文件。
  • linux机器正在运行Ubuntu 16.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,也无法修复它们。

非常感谢任何帮助。

1 个答案:

答案 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应该能够正确创建符号链接。