Подтвердить что ты не робот

Как инициализировать/обновить подмодуль git в рабочем дереве после нажатия на пустой рабочий каталог?

У меня есть репозиторий git с прикрепленным рабочим деревом, которое я нажимаю на пустой репо на удаленном компьютере. Репозиторий включает подмодуль.

На удаленном конце: я проверяю репо на дерево git checkout -f, установив GIT-DIR и GIT-WORK-TREE env vars.

В рабочем дереве теперь я вижу все ожидаемые файлы и пустой каталог для подмодуля ('MySubmodule').

Затем я:

git submodule init
git submodule update

Эти ошибки с сообщением типа:

working tree '../../workTree/' already exists
Clone of '[email protected]:user/MySubmodule.git' into submodule path 'MySubmodule' failed

Пустой каталог подмодулей теперь также "исчез" из рабочего дерева...

Я не уверен, где я ошибаюсь, в основном, я просто хочу проверить файлы подмодулей, как и с 'git обновлением подмодуля.

4b9b3361

Ответ 1

Похоже, что при запуске обновления подмодуля "git" вы не можете установить GIT_WORK_TREE... он попытается использовать это как рабочее дерево для подмодуля, а не для суперпроекта.

Мне пришлось обновлять мои серверы после обновления script...

/usr/local/bin/git --git-dir="$PROJECT_DIR" --work-tree="$PROJECT_DEMO" checkout -f;

cd "$PROJECT_DEMO";
/usr/local/bin/git --git-dir="$PROJECT_DIR" submodule update --init --recursive;

Заметьте, что я не установил переменные env и что в команде подмодуля не было установленного набора "workwork"... кажется, что он должен работать из cwd.

Ответ 2

Прежде всего, зачем вам проверять голый репо? Просто клонируйте его в другое место и работайте с обычным, не-голым репо.

Но если вам действительно нужно это сделать, вы можете переименовать папку в .git, изменить bare = true на bare = false в .git/config, а затем сделать git checkout.