В моем проекте мне нужно использовать сторонний код, хранящийся в нескольких хранилищах Git. Мой проект также хранится в (отдельном) хранилище Git. Есть несколько человек, которые работают со мной по основному проекту, и я - сопровождающий.
В предыдущих проектах я вручную копировал зависимости в рабочем дереве Git, добавляя небольшую версию, определяющую версию, которую я использую.
Теперь это довольно неудобно, так как мне нужно ежедневно обновлять одну из зависимостей и часто вносить код в него сам, большую часть времени в сочетании с изменениями в основной проект.
Я решил попробовать подмодули Git для управления. Чем больше я их пытаюсь, тем больше разочаровываю. Кажется, что ручная копия, возможно, лучше.
Вот некоторые из моих проблем:
- Мы больше не можем получать согласованное состояние репозитория с помощью одной команды (
git checkout
теперь требуетсяgit submodule update --init
). - Мы не можем использовать некоторые из инструментов Git правильно (
git archive
является самым заметным). - Мы не можем видеть изменения/различия статуса в подмодулях из основного проекта.
- Как я только что нашел,
git submodule
не работает с параметрами--git-dir
и--work-tree
и требует физического изменения текущего каталога на "полный уровень рабочего дерева".
Кажется, что для упорядочения рабочего процесса подмодулей (то есть одной операции == одна команда) нам нужно написать довольно толстую оболочку вокруг Git. Это печально.
Обратите внимание, что это не возможность отходить от Git или полностью объединить разработку подпроекта в основной проект.
Возможно, я использую git submodules
неправильно? Есть ли хороший учебник по рабочему процессу?
Пожалуйста, говорите, даже если вы не знаете правильного ответа, но разделяете мои проблемы.: -)