Страницы

Поиск по вопросам

четверг, 29 ноября 2018 г.

Работа с модулями в GIT

Есть внешний репозиторий в котором реализован базовый функционал по работе с бд, в дальнейшем буду называть его 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

Комментариев нет:

Отправить комментарий