2013-04-17 2 views
1

У меня есть один и только один мерзавец репо на удаленном сервере с именем, скажем, allinone, но я на самом деле есть несколько проектов, скажем proj1, proj2, proj3, и я храню все эти проекты в allinone, как это:Возможно ли использование одного git-репо для управления несколькими репозиториями git?

allinone 
|- .git 
|- proj1/ 
|- proj2/ 
|- proj3/ 

Вот как идут дела (если это возможно):

  1. Я создал allinone GIT репозиторий
  2. я создал proj1 GIT сделок рЕПО, сделать некоторые разработки, совершая, и сделано.
  3. Я создал proj1 филиал в allinone репо и «импорт»proj1 в proj1 ветви allinone «s со всеми совершить журналы.
  4. То же самое для proj2, proj3.
  5. Позже я могу проверить proj1 ветку в независимый каталог.

Возможно ли это? Или есть какие-то предложения? Я не хочу покупать другое репо.

+2

«Я не хочу * покупать * другое репо». ?? И просто говоря, вы, вероятно, хотите, чтобы «подмодуль в git». – quantum

+1

не делайте пожалуйста. это причиняет боль душе. Просто получайте бесплатные неограниченные частные репозитории в любом месте, например bitbucket.org. или из списка, предложенного qqx – hajpoj

ответ

1

Git сам по себе не требует наличия каких-либо связей между филиалами в репозитории. Таким образом, вы можете создать столько локальных репозиториев, которые вы хотите, и иметь все эти нажатия в один удаленный репозиторий. Если вы тщательно настроили refspecs, используемые каждым локальным репозиторием, это может даже показаться очень похожим на то, что у вас есть отдельные пульты для каждого локального репозитория.

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

У вас гораздо меньше шансов столкнуться с проблемами, если вместо этого вы найдете способ иметь отдельный удаленный репозиторий для каждого проекта. В git wiki есть list of hosting sites, некоторые из которых позволят бесплатно размещать частные хранилища.

0

Плохая архитектура. Вы убиваете себя, управляя своим репо таким образом.

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

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

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

Удачи!

Смежные вопросы