Ответ 1
Вы хотите прочитать о 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
Это также должно быть известно в удаленном репозитории, только локальная копия не помогает мне, потому что другие люди проверяют это и должны иметь возможность компилировать все.
Вы хотите прочитать о Git подмодулях.
Вы можете вложить два репозитория git без использования подмодулей. Предположим, ChildRepo является подкаталогом ParentRepo, и оба являются репозиториями git.
+ ParentRepo
- ChildRepo
Если вы добавите файл в ChildRepo, ParentRepo проигнорирует его. Когда вы сделаете это, он будет добавлен в ChildRepo. Невозможно добавить файлы в ChildRepo в ParentRepo.
Дополнительная информация: Вложенные git repo gotchas!
Используйте git subtree
в git версии 1.7.11 и выше. git subtree
превосходит подмодуль git, потому что:
git subtree
не требует, чтобы пользователи вашего репозитория узнавали что-либо новое, они могут игнорировать тот факт, что вы используете поддерево для управления зависимостямиgit subtree
не добавляет новые файлы метаданных, например git submodule
(например,
.gitmodule
)Кроме того, если вам нужно отсоединить поддерево существующего репозитория в новом репозитории, git subtree split
может помочь вам в этом.