Как создать два репозитория Git в одном базовом каталоге, не используя ветки?

В настоящее время мы занимаемся переносом файлов Magento Enterprise (веб-приложения для электронной коммерции) в Git. Файл httpdocs/.gitignore содержит, среди прочего:

app/design/frontend/company/website/
skin/frontend/company/website/

После инициализации, фиксации и отправки httpdocs / наш первый репозиторий Git был успешно создан. Теперь мы хотим поместить оба вышеупомянутых каталога в их отдельный, отдельный репозиторий. (Вместе в одном репозитории!) Проблема, с которой мы здесь сталкиваемся, состоит в том, что эти каталоги имеют общий корень, который уже содержит наш первый репозиторий Git; то есть: httpdocs /

Я читал, что с помощью функции субмодуля можно встроить другие репозитории в подкаталоги существующих деревьев. Однако документация, например, на kernel.org и git-scm.com, кажется настолько сложной, что я задаюсь вопросом, действительно ли это путь для продвижения вперед. Все, что нам нужно, это два отдельных репозитория, они просто имеют один и тот же корень.

Другое возможное решение, о котором я читал, может состоять в том, чтобы инициализировать из приложения / design / frontend / company / website / и добавить скин / frontend / company / website / в качестве точки пересадки, чтобы объединить эти каталоги вместе. Однако, опять же, это кажется слишком сложным и предназначено скорее для использования при переходе с другой системы контроля версий на Git.

3 ответа

Решение

Вам нужно будет использовать подмодули или связать различные репозитории путем слияния поддеревьев.

Если вы идете по маршруту субмодуля, рассмотрите возможность использования gitslave, поскольку это сэкономит вам много ручных шагов, если вы активно разрабатываете оба репозитория.

Надеюсь это поможет.

Вы можете посмотреть на объединение поддеревьев, которое является своего рода альтернативой использованию подмодулей.

Пройдите шаги и поймите, что он делает, прежде чем идти вперед.

Хотя, как и Антон, то, что вы пытаетесь сделать, не может быть лучшей практикой. На самом деле, это может привести вас к другим проблемам!

Начиная с git-1.7.11, в git была добавлена ​​команда поддерева. Он делает именно то, что вы хотите, без проблем субмодулей и без слияния поддеревьев. (команда поддерева отличается от объединения поддерева)

Здесь связанный пост в блоге: введите описание ссылки здесь

Другие вопросы по тегам