Страницы

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

четверг, 26 декабря 2019 г.

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

#git #git_submodule


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



Вариант 1. Подумайте, можно ли допиливание осуществить за счет конфигурации? Например, вынести разные константы в отдельный конфиг. В составе субмодуля у вас будет один конфиг с дефолтными значениями, а в конкретном проекте — второй, в котором некоторые из значений могут быть переопределены. Тогда необходимость вносить изменения в субмодуль исчезнет. Вариант 2. Сделайте в субмодуле новую ветку, специфическую для этого проекта. Вносите изменения в нее. Если вы внесете какие-то общие изменения в DAL и захотите обновить их в репозитории, то вам нужно будет обновить master, а потом сделать rebase ваших изменений на новый последний коммит. Было: master feature Y | C X | / B | A Станет: master feature Y' | X' / C | B | A

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

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