2015-03-05 6 views
3

Использование Git в Windows, я пытаюсь иметь дело с контентом, который является внешним для моего git-репо. Например, у нас есть файлы обложки и содержимого, которые обновляются пользователями git-пользователей на диске Google, поэтому, чтобы зафиксировать эти изменения, я установил что-то похожее на следующее:Безопасное использование соединения или mklink/j с git-хранилищем в Windows

d:\MyRepo 
    \.git 
    \code1 
    \images1 
    \fonts (junction) => c:\users\%username%\google drive\designerLtd\fonts 
    \etc 

Где «шрифты» это папка была связана с использованием либо junction.exe или mklink /j (то же самое). Это обычно отлично работает, потому что Git status сразу же выделяет новые изменения (либо по назначению, либо случайно), и готовит их для проверки или отмены.

ВОПРОС: иногда при переключении ветвей Git обрезает связанные каталоги и воссоздает их, если содержимое в этих папках отличается от ветвей. По сути, это нарушает связь. Теперь Git всегда прав, и сборка последовательна, но не всегда очевидно, что она больше не отслеживает эти внешние ресурсы.

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

Переключение содержимого во внешние местоположения при переключении филиалов не является проблемой, потому что есть только один ПК, подключенный таким образом, и они легко объединяются, но я просто хочу, чтобы он не нарушил ссылки.

ВОПРОС: Есть ли лучший способ разрешить внешние точки соединения внутри репозитория Git в Windows?

Чтобы быть ясным, в репозитории GIT нет (пока) ссылок на symlinks (пока), и это не вопрос совместимости между клиентами Unix и Windows git (большинство из которых на SO кажутся относится к).

+0

Я испытываю ту же самую проблему. Вы нашли способ обойти это? – Ali

+1

Не совсем. Я просто создал скрипт для восстановления/сброса ссылок. Это не идеально. Создание git-репо - мастер и привязка к нему, а не наоборот - лучше всего, но ссылки в репо очень грязные. – cirrus

ответ

1

Вы можете изменить разрешения точки соединения, чтобы git больше не мог ее удалять. Обычно Git не волнует, если удаление каталога завершается с ошибкой (за исключением случаев, когда необходимо заменить каталог файлом).

«Рекомендации по применению» в https://support.microsoft.com/en-us/kb/205524