Общая конфигурация Git между Windows и Git-клиентом Ubuntu: проблема с версией символической ссылки - PullRequest
0 голосов
/ 14 мая 2019

У меня есть проект PHP в удаленном репозитории git, включая символические ссылки.У меня установлена ​​виртуальная машина Ubuntu на хосте Windows.

Проект клонирован из git-клиента Ubuntu в общую папку VirtualBox.Таким образом, проект доступен и из Windows с помощью PHPStorm.

Со стороны Ubuntu:

(я не редактировал gitconfig)

> git config -l
core.symlinks = false

Символические ссылки правильно работают.

Со стороны Windows:

(я не редактировал gitconfig)

> git config -l 
core.symlinks = false

Не требуется преобразовывать символические ссылки в ссылке Windows,они не нужны для работы под Windows.

Согласно https://git -scm.com / docs / git-config :

core.symlinks

Если false, символическийссылки проверяются в виде небольших простых файлов, содержащих текст ссылки.git-update-index [1] и git-add [1] не изменят тип записи на обычный файл.Полезно для файловых систем, таких как FAT, которые не поддерживают символические ссылки.

Значение по умолчанию - true, за исключением того, что git-clone [1] или git-init [1] будут проверять и устанавливать core.symlinks false, если необходимо, когда хранилище

Поэтому я ожидаю, что на стороне Windows клиент git будет управлять символическими ссылками как текстовыми файлами.

Но: , если я удалю символическую ссылку с помощью Ubuntuсторона, и создайте то же самое точно (все еще стороной Ubuntu), затем стороной Windows PHPStorm перечислите эту символическую ссылку как , чтобы быть переданным .Более того, это неизвестный тип файла .

Что мне не хватает?Спасибо

Я уже видел следующие вопросы и ответы, которые полезны, но не решены в моем случае:

1 Ответ

0 голосов
/ 14 мая 2019

Параметр core.symlink указывает на поддержку вашей платформой символических ссылок.Он автоматически обнаруживается при локальном создании хранилища и является кэшированным параметром для поддержки платформы.

Не следует изменять этот параметр.

При измененииэтот параметр, то вы бы сказали git, что не поддерживает символические ссылки.Затем вы создали символическую ссылку, несмотря на утверждение, что у вас есть система, которая их не поддерживает.

В этом случае, однако, у вас возникают проблемы, потому что вы пытаетесьподелитесь своим хранилищем между двумя машинами.Вы клонировали или init редактировали репозиторий на машине, которая не поддерживала символические ссылки (на машине с Windows), поэтому core.symlinks было установлено на false.Поэтому ваш репозиторий не поддерживает символические ссылки .

Поэтому, когда обнаружена символическая ссылка , git сообщает вам, что существует несоответствие между тем, что поддерживает ваш репозиторий, ичто у вашего рабочего каталога есть .

Ваши инструменты сообщают вам, что у вас есть проблема.

Если вам нужно поддерживать символические ссылки, то вам, вероятно, следует включить поддержку символических ссылок в Windows .Однако это, вероятно, не последняя проблема, с которой вы столкнетесь при совместном использовании репозитория Git между этими двумя системами.

...