Символьная ссылка - это файл, содержащий ссылку на другой файл в вашей файловой системе. Вы можете добавить символическую ссылку в свой репозиторий, но, делая это, вы только добавляете ссылку на другой файл, а не на этот другой файл.
Вы можете добиться желаемого, создав жесткую ссылку вместо символической. Жесткая ссылка - это связь между именем файла и его содержимым (и метаданными) на уровне файловой системы. Создавая жесткую ссылку на файл и добавляя его в свой репозиторий, вы добавляете этот связанный файл. В операционных системах, совместимых с POSIX (как и во всех Linux), вы можете создать жесткую ссылку следующим образом:
ln /root/my_file my_hard_link
Для получения дополнительной информации о различных типах ссылок см. этот вопрос и ответы на него.
ОБНОВЛЕНИЕ: обратите внимание, что git ничего не знает о жестких ссылках. Добавление жесткой ссылки в репозиторий git означает, что вы добавляете содержимое этого связанного файла. Git не знает, что только что добавленный файл является жесткой ссылкой. Добавление жесткой ссылки в репо не сломает его, но при извлечении из репо будет создана новая копия этого файла, а не воссоздать эту жесткую ссылку. Под "проверкой" я имею в виду не только команду git checkout
, но и такие операции, как clone
создание новой копии репо, удаление жесткой ссылки и использование git reset
для ее воссоздания или pull
создание новой версии этого жестко связанного файла из удаленного репо.
Напомним, у вас есть два варианта:
- Добавить символическую ссылку в репо - это добавит только информацию о ссылке, а не содержимое связанного файла.
- Добавить жесткую ссылку в репо - это добавит содержимое связанного файла. Хотя он не будет добавлять информацию о ссылке, он также не сломает ссылку до тех пор, пока вы в следующий раз не удалите этот жестко связанный файл из репозитория.
person
TeWu
schedule
08.10.2016
pull
? Как насчет того, чтобы отказаться от локальных изменений иcheckout
из вашего репо? Я не говорю, что вы ошибаетесь, но такие сообщения, как это заставляет меня сомневаться. - person beatngu13   schedule 08.10.2016