Ответ 1
Вы можете попробовать git поддерево (alt link). Мне было очень повезло с ним, используя как удаленные репозитории, так и чистые (привязанные к master
истории) ветки в моем проекте.
В моем проекте мне нужно использовать сторонний код, хранящийся в нескольких хранилищах Git. Мой проект также хранится в (отдельном) хранилище Git. Есть несколько человек, которые работают со мной по основному проекту, и я - сопровождающий.
В предыдущих проектах я вручную копировал зависимости в рабочем дереве Git, добавляя небольшую версию, определяющую версию, которую я использую.
Теперь это довольно неудобно, так как мне нужно ежедневно обновлять одну из зависимостей и часто вносить код в него сам, большую часть времени в сочетании с изменениями в основной проект.
Я решил попробовать подмодули Git для управления. Чем больше я их пытаюсь, тем больше разочаровываю. Кажется, что ручная копия, возможно, лучше.
Вот некоторые из моих проблем:
git checkout
теперь требуется git submodule update --init
).git archive
является самым заметным).git submodule
не работает с параметрами --git-dir
и --work-tree
и требует физического изменения текущего каталога на "полный уровень рабочего дерева".Кажется, что для упорядочения рабочего процесса подмодулей (то есть одной операции == одна команда) нам нужно написать довольно толстую оболочку вокруг Git. Это печально.
Обратите внимание, что это не возможность отходить от Git или полностью объединить разработку подпроекта в основной проект.
Возможно, я использую git submodules
неправильно? Есть ли хороший учебник по рабочему процессу?
Пожалуйста, говорите, даже если вы не знаете правильного ответа, но разделяете мои проблемы.: -)
Вы можете попробовать git поддерево (alt link). Мне было очень повезло с ним, используя как удаленные репозитории, так и чистые (привязанные к master
истории) ветки в моем проекте.
Недавний поток в списке рассылки git содержит патч для того, как получить согласованное состояние репозитория с помощью одной команды. Он в основном называет обновление 20 > при изменении ветвей.
http://thread.gmane.org/gmane.comp.version-control.git/130155/focus=130330