2016-05-25 4 views
1

Почему,Git клон --mirror с Подмодулями не работают

git clone --mirror [repo-url]

или

git clone --mirror --recursive [repo-url]

не будет работать с подмодулями. Попытка git fetch --recurse-submodules дает ошибку

fatal: Refusing to fetch into current branch refs/heads/master of non-bare repository

за исключением --mirror однако работает.

Таким образом, если репозиторий был клонирован с опцией --mirror, нет возможности подключить подмодули, если только репозиторий не клонирован без --mirror.

Запуск git submodule update --init --recursive из рабочей копии выдает сообщение об ошибке:

fatal: Not a git repository (or any of the parent directories): .git

Запуск git submodule init из зеркального хранилища дает сообщение об ошибке:

fatal: /usr/libexec/git-core/git-submodule cannot be used without a working tree.

Использование GIT_WORK_TREE и/или GIT_DIR переменные среды также не работают.

Это единственный вариант повторного клонирования хранилища с нуля?

Edit: Кстати, причина --mirror в первую очередь потому, что я был после этого: http://jonathannicol.com/blog/2013/11/19/automated-git-deployments-from-bitbucket/

ответ

1

Хранилище создается с --mirror флагом является голое хранилище (т.е. он не имеет рабочую область). AFAIK, подмодули могут быть инициализированы и загружены только в рабочую зону.

Подробнее:

+0

После создания хранилища я бы запустить 'CD-~/ .git GIT_WORK_TREE =/Home//WWW GIT Checkout -f производство 'и все еще не могут получить подмодули из рабочих областей или каталогов репо. Кажется странным, что путем клонирования репозитория таким образом, что подмодули не могут быть получены позднее. Конечно, возможно, что я делаю неправильно? –

+0

Спасибо за помощь, с вашей ссылкой, это решение сработало для меня: http://stackoverflow.com/a/31627058/644721 –

Смежные вопросы