Haotik
@Haotik
PHP мидл без фреймворков

Как ораганизовать репозиторий для команды?

Добрый день.

Есть команда из нескольких человек. Требуется организовать совместную работу с контролем через гит.
Мне в целом понятно как работать группой над одним проектом, но специфика решаемых задач в том что проектов много и одновременно над ним работает только часть команды.

Если заводить каждый новый проект через отдельный репозиторий то их становится сложно отслеживать. + дополнительные сложности в том что бы постоянно добавлять и исключать оттуда людей.

Если же заводить один репозиторий в котором по папкам разделяются проекты система в какой то момент превращается в свалку так как в один комит могут попасть данные из разных проектов. Которые вообще то пересекаться не должны.

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

И как то пазл не складывается =) Хочется и удобно и безопасно и т.д. )
Может кто нибудь подсказать книги / статьи по подобной организации работы ?
  • Вопрос задан
  • 245 просмотров
Решения вопроса 2
sheerluck
@sheerluck
Так как приходят новые люди и им нужно показывать только часть кода -- то надо заводить новый отдельный репозиторий. Отслеживать их не сложно. Добавлять и исключать людей не сложно.
А свалку делать не надо.
Ответ написан
Комментировать
sloboda
@sloboda
Java QA Automation
Всё же лучше отдельные репозитории.
Или несколько отдельных репозиториев, сгруппированных по функционалу приложения, в которых будут подпапки.
У вас же каждый сотрудник работает в своем форке.
При внимательной организации code review и мержа только по результатам code review большой свалки в проектах и подпроектах быть не должно.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
igolets
@igolets
Программист C#, MSSQL
Тут важный вопрос. Общие части системы можно редактировать, или нет?

Если нет — можно вынести их в отдельные репы, собирать из них nuget модули и публиковать в частном nuget репозитории.

Если нужно редактировать и хочется заморочиться, то можно сделать следующее:

  1. Сделать репозитории для небольших подсистем
  2. Для каждого проекта сделать по репозиторию, составить список подсистем, которые в нём используются и
  3. В репозиторий проекта добавить подсистемы через https://git-scm.com/book/en/v2/Git-Tools-Submodules
  4. Добавить код, уникальный для проекта в виде отдельных папок в репозитории проекта.
  5. Постараться не запутаться во всём этом великолепии и не сломать друг другу работу.


Ещё есть вариант отказаться от монолита, удариться в микросервисы. Тогда каждый кусок проекта будет независимым и можно будет его вынести в отдельную репу. Но тут может быть много работы по распилу монолита.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы