Git: отправить локальный подмодуль git, включая файлы подмодулей, в удаленный голый репозиторий.

У меня есть два локальных проекта, которыми я управляю с помощью git, один из которых зависит от другого, например:

project A/
├── project B/     
│   ├── file B₁
│   ├── file B₂
│   ├── …

Для меня имеет смысл иметь project B в качестве подмодуля git для project A.

Теперь я настроил удаленный голый репозиторий для project A для резервного копирования и совместного использования. Конечно, я хочу, чтобы удаленный репозиторий содержал все project B, включая его файлы (file B₁, file B₂, …). Но git push и git push --recurse-submodules=on-demand этого не достигают. Всякий раз, когда я перечисляю файлы в своем удаленном хранилище с помощью git ls-tree -r HEAD, в списке отображаются только файлы самого project A. Это имеет смысл для меня.

Однако есть ли способ каким-то образом отправить весь подмодуль project B в мой удаленный базовый репозиторий, желательно чистым способом?


person k.stm    schedule 22.02.2018    source источник


Ответы (2)


Если B на самом деле является подмодулем, у вас должен быть .gitmodule, ссылающийся на него.
В этом файле .gitmodule вы увидите URL-адрес удаленного репо, куда B помещается, на случай, если в B будут сделаны какие-либо новые коммиты.

Но поскольку B является подмодулем, это означает, что в A не будет файлов B, а только ссылка на B SHA1.

Если вы хотите, вы можете отменить субмодуль B (с моим ответом или этот), чтобы сохранить все файлы B в A.

person VonC    schedule 23.02.2018

Подмодуль должен иметь отдельный репозиторий. Создайте новое голое репо и вставьте в него свой подмодуль.

person phd    schedule 23.02.2018