У меня есть две папки:
/home/me/code/project/
/srv/www/projectfiles/
В /home/me/code/project
папке я ссылаюсь static
на/srv/www/projectfiles/
то есть /home/me/code/project/static/
->/srv/www/projectfiles/
Когда я пытаюсь сделать коммит сейчас, он не видит никаких файлов за символической ссылкой, а вместо этого пытается зафиксировать саму ссылку как файл.
Как мне зафиксировать файл (например /srv/www/projectfiles/style.css
), который находится за символической ссылкой?
git
symbolic-link
Мача
источник
источник
Если вы используете Linux, мне особенно нравится решение, предоставляемое GitBLSR . Это библиотека, загружаемая через LD_PRELOAD, которая прозрачно разыменовывает символические ссылки на файлы и папки вне репозитория.
Установить его для локальной учетной записи пользователя просто:
Это скомпилирует библиотеку и создаст псевдоним, подобный следующему
~/.bashrc
:Использование этого псевдонима позволяет разыменовывать прозрачные ссылки.
источник
Подумайте об использовании точки монтирования для монтирования папки назначения (с которой вы в настоящее время используете символическую ссылку), чтобы она отображалась в том месте, где вы хотите ее разместить под проектом git. Я успешно использовал этот подход.
источник
Переместите файлы в папку и удалите символическую ссылку. Git не пересекает символические ссылки.
Он (и я) предположил бы, что вы используете символическую ссылку на набор файлов, которые вы либо не контролируете, либо не хотите изменять, так как они не должны быть версионированы.
источник
Другой обходной путь - единственный найденный мной способ, который работает и для каталогов, - это изменение рабочего дерева git для конкретных действий.
источник