Git Project с мульти-продуктовым вкусом и размерами
Кто-нибудь может подсказать, как правильно применить git к проекту Android с несколькими вариантами и вкусом продукта.
Я мог бы просто добавить Git ко всему проекту, но будет ли это правильным способом?
РЕДАКТИРОВАТЬ:
Допустим, я создаю приложение для магазина.
Я бы имел следующую конфигурацию
flavourDimensions "клиент", "сеть" productFlavors { client1 {измерение "клиент"...}
client2 {
dimension "client"
...
}
prod {
dimension "network"
...
}
debug {
dimension "network"
...
}
}
Полученные варианты продукта будут совместно использовать одну и ту же "кодовую базу" (поскольку они оба являются Приложением для Магазина), но им также необходимо будет иметь отдельные выпуски / функции итерации / версии.
Один из способов сделать это (и единственный известный мне способ сделать это) - просто добавить Git ко всему проекту. Создайте ветку для аромата продукта и продолжайте оттуда. Единственная проблема заключается в том, что, когда я делаю некоторые изменения в "Базовом коде", мне приходится каскадировать его в некоторые, если не во все ветви.
Мой вопрос, если это правильный способ сделать это.
Заранее спасибо.
1 ответ
Вы можете использовать любой из следующих вариантов:
Вариант 1: управлять всеми проектами в одной ветке и пометить для разных версий проектов
Предположим, что вы управляете 2 проектами в одной и той же ветке, вы можете использовать теги для управления отдельными версиями проектов по отдельности: формат версии A*.*.*
(такие как A1.0.0
) для проекта1 и формата версии B*.*.*
(такие как B1.0.0
) для проекта2.
Чтобы добавить тег для HEAD:
git tag -a <version> -m 'message'
Чтобы добавить тег для фиксации истории:
git tag -a <version> -m 'message' <commit>
Вариант 2: управлять разными проектами в разных ветках
Вы можете управлять каждым проектом в разных ветках, так что вы можете управлять и отслеживать версии для разных проектов отдельно.
И если "кодовая база" изменяется в одной ветви, вы можете применить изменения в других ветвях.
Чтобы применить файл из ветви (например, branchA
) в другую ветку (например, branchB
), вы можете использовать следующие команды:
git checkout branchB
git checkout branchA -- filename
git commit -m 'apply the changes of the filename from branchA into branchB'