Подтвердить что ты не робот

Git репозиторий в хранилище Git

У меня есть основной репозиторий git A, и мы используем источники из другого репозитория git B в подкаталоге нашего основного проекта. Теперь было бы хорошо, чтобы репозиторий B был извлечен в репозитории A в этом используемом подкаталоге. Если кто-то тогда клонирует репозиторий, конечно, он должен получить наш главный репозиторий A и внутри этого автоматически B-репозиторий.

Позвольте мне представить структуру каталогов:

+ main_repository       - the root directory of the main Repository
  + src                 - directory containing the source 
    + foreignRepo       - this should be the root directory of another git repo
  + binaries
  + other

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

4b9b3361

Ответ 2

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

+ ParentRepo
  - ChildRepo

Если вы добавите файл в ChildRepo, ParentRepo проигнорирует его. Когда вы сделаете это, он будет добавлен в ChildRepo. Невозможно добавить файлы в ChildRepo в ParentRepo.

Дополнительная информация: Вложенные git repo gotchas!

Ответ 3

Используйте git subtree в git версии 1.7.11 и выше. git subtree превосходит подмодуль git, потому что:

  • Простое управление простым документооборотом. Старые версии git поддерживается (даже до версии 1.5.2).
  • Код подпроектов доступен сразу после завершения клона суперпроекта
  • git subtree не требует, чтобы пользователи вашего репозитория узнавали что-либо новое, они могут игнорировать тот факт, что вы используете поддерево для управления зависимостями
  • git subtree не добавляет новые файлы метаданных, например git submodule (например, .gitmodule)
  • Содержимое поддерева может быть изменено без наличия отдельной копии репозитория в другом месте

Кроме того, если вам нужно отсоединить поддерево существующего репозитория в новом репозитории, git subtree split может помочь вам в этом.