Несколько проектов в одном репозитории GitHub - PullRequest
2 голосов
/ 04 октября 2019

У меня есть 5 проектов Java, работающих вместе. Сначала я работал один над этими проектами. Теперь кто-то присоединился ко мне, и нам действительно нужно использовать GitHub для эффективной работы.

Проект А, скажем, главный проект, он не зависит от других. Проект B зависит от проекта A. Проект C зависит от B и A. Проект D и т. Д. И т. Д.

Я столкнулся с проблемой проектирования:

Должен ли я использовать один репозиторий git и поставитьвсе они вместе, но в разных папках? Должен ли я использовать разные git-репо и сохранять их независимыми (может быть, лучше для коммитов)? Должен ли я использовать разные репозитории git и перегруппировать их в одно мастер репо?

Заранее благодарен за помощь.

Ответы [ 3 ]

2 голосов
/ 04 октября 2019

Вы должны поместить каждый из них в свой собственный репозиторий git.

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

Пример: Проект A будет содержать проект B в качестве подмодуля.

Подробнее о подмодулях git
Официальная документация

2 голосов
/ 04 октября 2019

На самом деле ваш вопрос можно резюмировать следующим образом: должен ли я использовать подход моно-репо или подход мульти-репо?
Это широкая тема, но для простоты: это зависит от уровня связи и жизненного цикламежду этими проектами.

Вы хотите использовать подход моно репо и добавлять несколько проектов, если эти проекты предназначены для совместной жизни и развития. Например, если только эти проекты имеют зависимость между ними и что при изменении зависимости вы измените потребителя, у вас явно не будет смысла разбивать их на несколько репозиториев.
Это сделает читаемость исходного кода на глобальном уровне более слабой и фиксированной. / pull / request / merge для нескольких репозиториев для одного и того же варианта использования, что делает их читабельность и их согласованность более слабыми.

Вы хотите использовать подход с несколькими репо и иметь проект репо, если эти проекты не предназначены для совместной жизни и развития. Например, если некоторые из этих проектов используются другими приложениями, чем те, которые вы цитируете, у вас нет никакого смысла связывать зависимость проекта внутри хранилища потребительского проекта, потому что есть другие потребители, так почему этот потребитель, а не другой?

У вас также есть метод супер моно репо , такой как тот, который используется Google или Facebook, который добавляет все проекты (или почти) в одном и том же хранилище, независимо от того,уровень связи между проектами. Делать это непросто и требует тонкой настройки инструментов CDCI и SCM, чтобы сохранить практичность и простоту, несмотря на размер репо.

0 голосов
/ 04 октября 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...