2010-05-16 2 views
2

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

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

Хорошо, первое, что я хочу сделать, это создать еще две версии проекта. Как я уже объяснял перед версией, у меня теперь есть некоторые образцы данных внутри нее.

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

Вторая версия, которую я хочу создать, - это расширенная версия. Это имеет облегченную версию в сочетании с образцами данных, а также еще несколько расширений.

Так что в конце концов у меня есть 3 варианта того же проекта, среднего и среднего размера.

Теперь, что является лучшим способом сделать это. Должен ли я создать 3 репозитория для этого, или я могу использовать только один репозиторий для всех версий.

ответ

3

Использование контроля версий для поддержки нескольких потоков разработки, как правило, является плохими идеями. Это потребует непрерывной слияния, которая подвержена ошибкам и обременительна.

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

+0

Привет, в принципе, я понимаю, в чем ваша суть. Если я правильно понял, вы предлагаете иметь только урезанную версию на git. И чем создавать новые проекты из этого. Но я не совсем понимаю, что вы имеете в виду. Вы предлагаете поставить другие версии не под управлением версии, или вы имеете в виду, что я должен использовать другую систему. –

+1

Я сказал наоборот, «единственную базу кода, которая имеет всю расширенную версию». Возможно, моя фраза, «без ссылки», путала проблему. Что я имел в виду под этим, это поставить все под контроль версий, но спроектировать стратификацию вашего проекта, как если бы у вас его не было при управлении версиями, или, другими словами, не использовать функции контроля версий для управления стратификацией вашего продукта , –

2

Если вы держите 3 вместе в качестве примеров того, как строить другие проекты, я бы сохранил их в одном репозитории git. Создайте наименьший в главной ветви. Затем создайте 2 новые ветви от мастера, 1 для каждой из других версий. Добавьте изменения среды в ветви среды и большие изменения в большой ветви. Мастер по-прежнему относится к маленьким.

Преимущество этого в том, что вы понимаете, что есть какая-то новая базовая функциональность, которую вы хотите во всех трех версиях. Вы просто вносите изменения в master, а затем переустанавливаете остальные 2 ветви на master.

+0

Спасибо, что это звучит идеально для меня. Но что, если я хочу использовать самую большую для производственной среды. Это возможно? Возможно, я хочу иметь самую большую версию для веб-сайта структуры. И люди загружают облегченные и средние версии. –

+0

Если все 3 являются конечными продуктами, я согласен с Марсело, что вы должны различать их в своей сборке. –