В настоящее время у нас есть хранилище с именем my-company-php-library
где у нас есть специфичные для бизнеса инструменты, которые повторно используются в нескольких других проектах.
В последнее время мы добавили другие вспомогательные средства общего назначения, такие как помощники массивов, абстракции кэша, абстракции уведомлений Slack и т. Д.
Мы рассматриваем разделение библиотеки монолитов, но наличие десятка небольших хранилищ кажется чрезмерным:
my-company/array-helper
my-company/cache
my-company/notifications
my-company/session-handler
my-company/db
Есть ли способ в git, где вся библиотека находится в одном и том же хранилище, но вы можете клонировать только ее часть?
Когда у нас есть одноразовый проект, который просто нуждается в notifications
модуль, кажется, слишком много, чтобы импортировать все это. Тем не менее, наличие всего хранилища с двумя файлами также кажется излишним.
Вы можете хранить все в одном хранилище и для:
Is there a way in git where the entire library is in the same repository, but you can clone only a portion of it?
Git разреженные проверки это то, что помогает — взгляните на этот ответ.
Дополнительно виртуальная файловая система git, расширение git от Microsoft также может быть на что посмотреть.
В целом, зависит от размера репо и того, как люди хотят его использовать. С одной стороны, у вас может быть больше коммитов, которые «независимы» друг от друга, с другой стороны, вам нужно иметь дело с большим количеством репозиториев, например, если одна ошибка требует исправления источника, который находится в нескольких репозиториях … Иногда это не то, что лучше, но что менее плохо.
Других решений пока нет …