2015-12-22 2 views
1

git version - 2.6.4Разница между вложенным GIT РЕПО и подмодулями

Я застрял в ситуации, когда я не может клонировать полное содержание репо с использованием --recursive флага.

В моем основном репозитории есть два подкаталога health-check и hellspawn.

Я создал hellspawn как подмодуль, и у него есть его запись в файле .gitmodules.

Я не уверен, что такое health-check, будь то submodule или nested-git. health-check не имеет записи в .gitmodules, которые делают меня вещью, это может быть nested-git.

если да, то почему я получаю GIT сообщение при клонировании главного репозитория с

[email protected]:~/try$git clone --recursive  
[email protected]:url/mainrepo.git 

Cloning into 'mainrepo'... 
remote: Counting objects: 28713, done. 
remote: Compressing objects: 100% (613/613), done. 
remote: Total 28713 (delta 363), reused 5 (delta 5), pack-reused 28090 
Receiving objects: 100% (28713/28713), 788.79 MiB | 3.54 MiB/s, done. 
Resolving deltas: 100% (17645/17645), done. 
Checking connectivity... done. 
Checking out files: 100% (40522/40522), done. 
No submodule mapping found in .gitmodules for path 'health-check' 

`

Как вы можете видеть последнюю строку, если health-check вложен мерзавец, то почему мерзавец проверяет в .gitmodules файле ?? Из-за этой ошибки, я не получаю код, загруженный даже в hellspawn, который является подмодулем.

Любая помощь

ответ

1

здоровье проверка не имеет запись в .gitmodules, которые делают меня вещь может быть вложен-ГИТ.

Это вложенный git repo.

если health-check вложен мерзавец, то почему мерзавец проверяет в .gitmodules файле

Поскольку вложенный мерзавец репо записываются как gitlink (как подмодуль), что означает проверку GIT, если это special entry in the index матчи один объявлен в файле .gitmodules (из-за --recursive варианта git clone, с просьбой клонировать подмодулях)

Поскольку эта специальная запись не соответствует никакому пути доступа .gitmodules, она не срабатывает с этим предупреждением.

Из-за этой ошибки, я не получаю код, загруженный даже в HellSpawn, который подмодуль

два подхода:

  1. избавиться от этой специальной записи:
    Try и git rm --cached health-check (no trailing «/», как я уже упоминал в «git --recursive doesn't clone submodule»), затем добавьте и нажмите, а затем повторите попытку git clone --recursive

  2. Объявите подмодуль

То есть:

git config -f .gitmodules submodule.health-check.path health-check 
git config -f .gitmodules submodule.health-check.url https://github.com/<auser>/health-check 

(заменить <auser> фактическим пользователем управления, что репо)

Опять же, добавить, толчок, а затем попробовать git clone --recursive еще раз.

+0

спасибо .. получил – voila

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