Мне нужна доля для обмена определенными файлами между различными проектами. Таким образом, у меня есть файл структуры, как так:Как сделать GIT лечить каталоги как обычные папки в Windows?
D:\shared\
D:\shared\files-shared-by-all-projects-here
D:\project1\
D:\project1\project1-specific-files-here
D:\project1\shared <- directory junction to D:\shared
D:\project2\
D:\project2\project2-specific-files-here
D:\project2\shared <- directory junction to D:\shared
У меня есть установки GIT сделок РЕПО в D:\project1
и D:\project2
Моя проблема заключается в том, что ГИТ, кажется, только отслеживать файлы в не-(т.е. соединены в реальных каталогах).
Я использую Visual Studio 2015 для обоих проектов, и это Team Explorer будет вести себя очень странно, когда проект имеет файлы из «соединены в» каталогах:
- При добавлении файла проживающее в каталоге перехода к проекту, Team Explorer будет показывать только родительский каталог (соединение) в списке изменений для фиксации, а не сам файл.
- После совершения всех изменений (то есть файлы, которые были добавлены), Решение Explorer показывает всех файлов как отслеживаются и зарегистрированный (в том числе тех, которые находятся в местах соединения и были не показаны в списке ожидающих изменений после того, как они были добавлены:
- Редактирование файла, который показан как зарегистрированном и пребывает в директории перехода будет делать вид, быть извлеченная:
- Возвращаясь к Team Explorer Теперь, извлеченная файл показан в списке измененных файлов:
- Однако попытка выполнить транзакцию с сообщением «Ошибка» произошла. Подробное сообщение: никаких изменений; ничего не совершить «
- Возвращаясь к Обозревателе решений измененный файл, для которого коммит не удалось, тем не менее показано, как сдаваемый:.
Явное добавление файлы, которые находятся в общем каталоге (т. е. ссылаются на него через D:\project2\shared\some-shared-file
) от o Утилита Visual Studio с использованием Tortoise GIT, например, не работает: добавление завершается с сообщением о том, что это файл и каталог.
Выше был сделан с новым тестом-проектом, в котором frame
каталога проживающего в корне проекта действительно стык.
В моих реальных проектах, однако, ситуация несколько отличается ... Если я просматриваю репо с использованием Tortoise GIT, то на самом деле он будет показывать общие файлы, находящиеся в перекрестках, как отслеживаемые и зарегистрированные, а также часть репо. Однако, как только я открою проект в Visual Studio, он будет показывать те же файлы в обозревателе решений и в Team Explorer Changes, что и «ожидающее удаление». Так это VS quirck?
Итак, в нижней строке я просто хочу знать, как я могу сделать файлы, находящиеся в перекрестках каталогов, для просмотра как часть проекта наравне с обычными файлами, чтобы они были правильно извлечены и снова зарегистрированы и сформированы часть истории проекта (репо)?
Спасибо за четкое объяснение ! Можете ли вы порекомендовать какое-нибудь практическое решение? Или есть не что иное, как создание «общего» репо и вручную фиксировать его время от времени? –
Возможно, есть опция git для переключения? Я устал core.symlinks с истинным и ложным, но это, кажется, ничего не делает. –
Я боюсь, что никакого обходного пути нет, вам нужно будет использовать общий репозиторий, скопировать вручную или использовать подтиповый тип подхода. –