Есть внешний репозиторий в котором реализован базовый функционал по работе с бд, в дальнейшем буду называть его DAL — слой доступа к данным).
Создаю новый проект, подключаю DAL в качестве модуля:
git submodule add ../Projects/DataAccessLayer DAL
В текущем проекте мне необходимо его немного допилить напильником, данные изменения уникальны в рамках текущего проекта, в основном репозиторий DAL они мне не нужны.
Как правильно организовать/сделать такую работу?
UPD.:
На текущий момент я построил свою работу так:
Создаю новую ветку: git checkout -b НоваяВетка
Делаю необходимые мне изменения: добавляю новые классы, реорганизую, ну и т.п.;
Индексирую изменения, комичу: git add ... -> git commit -m 'Здесь какой то текст'
Вливаю изменения в главную ветку: git checkout master -> git merge НоваяВетка
Повторяю с начала списка по мере рефакторинга, добавления нового функционала;
UPD2
Master v.0.1
| \
| \
| \
| \
| v.0.1
| /
| dal
| /
| /
Master
т.е. я подключаю модуль в ветке dal, улучшения модуля dal делаем в ветках которые пойдут от dal
я правильно понял?
Ответ
Вариант 1.
Подумайте, можно ли допиливание осуществить за счет конфигурации? Например, вынести разные константы в отдельный конфиг. В составе субмодуля у вас будет один конфиг с дефолтными значениями, а в конкретном проекте — второй, в котором некоторые из значений могут быть переопределены. Тогда необходимость вносить изменения в субмодуль исчезнет.
Вариант 2.
Сделайте в субмодуле новую ветку, специфическую для этого проекта. Вносите изменения в нее. Если вы внесете какие-то общие изменения в DAL и захотите обновить их в репозитории, то вам нужно будет обновить master, а потом сделать rebase ваших изменений на новый последний коммит.
Было:
master feature
Y
|
C X
| /
B
|
A
Станет:
master feature
Y'
|
X'
/
C
|
B
|
A
Комментариев нет:
Отправить комментарий