Работа с одной и той же кодовой базой, разными версиями приложений в git

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

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

Мне нужны ваши предложения, как мне справиться с этим в git. Должен ли я создавать ветвь для каждой версии приложения? Как я должен обрабатывать различные вещи (имя приложения, значок, имя пакета, settings.xml, возможно, разные части кода) и при этом иметь возможность разрабатывать одну и ту же кодовую базу и обновлять каждую версию приложения.

Возможно, скрипт сервера сборки может обрабатывать некоторые замены файлов, но не может обрабатывать разные версии кода.

Есть ли кто-нибудь с такой же проблемой? Может рабочее решение?


person user2313423    schedule 06.01.2014    source источник


Ответы (1)


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

Вы можете увидеть пример на странице "Несколько сайтов Django с общей кодовой базой и БД".

Проблема с этим подходом заключается в том, чтобы предотвратить любое слияние из ветки app в master (вы должны сливать только из master в app).
A pre-commit может помочь хук.
И вы можете защитить свои файлы с помощью .gitattributes в app ветвь.

person VonC    schedule 06.01.2014
comment
Спасибо за ваш ответ, звучит здорово. Буду тестить и пробовать :) - person user2313423; 06.01.2014
comment
@ user2313423 у вас есть хороший опыт работы с git submodules или вы нашли что-то еще, что работало лучше? - person Norfeldt; 27.07.2018