В большинстве случаев лучше удалить символические ссылки из вашего репозитория. Если вы работаете в разных операционных системах, проблема связана с ссылками в вашем репозитории.
Когда вы удалите его и установите в новое место, ваш файл будет изменен.
Некоторые клиенты Java Git имеют проблемы с символическими ссылками. Они пытаются следовать за ними, и вы получаете сообщение об ошибке. У меня была эта проблема с клиентом Jenkins.
Чтобы добавить все символические ссылки в .gitignore, вы можете запустить следующую команду под Linux
--porcelain предназначен для такого использования.
Обратите внимание, что этот ответ awk и существующий ответ могут быть разбиты на имена файлов, содержащие пробелы, переводы строк и т.д., И в этом случае мы можем использовать.
git status -z | perl -0 -ne 'print $1 if /^\s*T\s*(.+)$/s' | xargs -0 git checkout
git status -z - это тот, который действительно рекомендуется для такого использования, и null завершает каждую запись. perl -0 имеет дело с тем, что -ne обрабатывает заданную команду для каждой строки (или "запись"). $1 относится к первой группе захвата здесь, которая будет включать имя файла и нулевой ограничитель.