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'
Другие вопросы по тегам