2016-07-21 4 views
3

Я новичок в Git, и я не уверен, какая стратегия подходит для моего первого проекта.Git: Лучшая стратегия создания репозиториев

например.

/src 
    /base/forms 
    /base//masks 
    /base/logics 
    /base/communication 
    /prj/A 
    /prj/B 
    /prj/C 

src - это программное обеспечение. Он используется в трех проектах (A, B, C). Каждый проект немного отличается. Но разница все обрабатывается в коде/prj/X. Коды/base одинаковы.

Теперь возможно, что мне нужно обновить базовый модуль (например, формы), но только для prj B. И через несколько недель это будет для каждого prj.

Каков наилучший способ организовать мой git?

Одно большое репо с anythink в нем (src)?

Или репо за раздел (основание/prj)?

or repo per dir (base/form, base/mask, ... prj/A, prj/B, ...)?

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

Спасибо за ввод!

ответ

0

Я бы предложил использовать один репо для каждой конкретной версии и один репо для базовых объектов.

В каждом конкретном репо я использовал подмодуль, чтобы вытащить базовый проект. Это позволит вам жестко контролировать «какая версия» базового модуля втягивается для каждого конкретного модуля.

Примеры

forms 
---A---B---C---D 
masks 
---X---Y---Z  

/prj/A 
---Q---W---E---R 
with 
/prj/A/base/forms 
---A---B---C 
/prj/A/base/masks 
---X---Y 


/prj/B 
---B---N---M 
with 
/prj/B/base/forms 
---A---B 
/prj/B/base/masks 
---X---Y---Z 

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

может быть даже стоит иметь верхний проект уровня Src ж/подмодулям каждого/PRJ/проекта, так что у вас есть по всем «это работает с этой» истории версий

, такие как

/src HEAD 
master A---B---C 
/src/prj/A Q---W---E 
/src/prj/B B---N 

then possibly 
/src 
master A---B---C---D 
/src/prj/A Q---W---E 
/src/prj/B B---N---M 

then possibly 

/src 
master A---B---C---D---E 
/src/prj/A Q---W---E---R 
/src/prj/B B---N---M 
0

Я не знаю, какой язык вы используете, но, похоже, вы должны использовать git repo для каждого из ваших трех отдельных проектов + одно репо для общего базового кода.

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

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