У меня есть небольшой побочный проект, поддерживающий его контроль версий с Git. Термин контроль версии здесь относится к его простейшей форме, которую вы можете себе представить: , производя коммит один за другим только на ведущей ветке и в конце дня, нажимая все фиксации на удаленный. Пока все хорошо. Достаточно было иметь только ведущую ветку, потому что последнее состояние приложения требовалось все время.как для релизов управления версиями с git
Тогда продавец сообщил мне, что им нужны версии 1.1 и v1.2. Проблема в том, что последняя комманда-хозяин содержит все вещи для v1.1 и некоторые неустановленные вещи для v1.2.
Мое первое намерение состояло в том, чтобы найти базовую фиксацию, где два «функциональных пакета» расходятся. Я создал две ветви из этой фиксации, и я начал вишневый захват над основанием один за другим. К счастью, их было не так уж много. Это привело к двум ветвям (v1.1 и v1.2), содержащим соответствующие вещи на месте, за исключением того, что мне пришлось переустановить v1.2 на v1.1, так как функциональность в v1.1 также необходима в v1.2
После всего этого, у меня есть следующие истории:
Как вы можете видеть, у меня есть «оборванных» ветвь, которая является хозяином, на самом деле, но мне не нужны эти коммиты, потому что все они были выбраны вишней в нужном месте.
Вопрос просто в том, как элегантно справляться с такой ситуацией (в основном, устраняя ненужные коммиты) без какого-либо вреда или иначе я бы достиг того же результата?
Проект Mercurial VCS использует отдельную «стабильную» ветвь, в которую объединены все коммиты, предназначенные для следующей версии выпуска. Любые исправления, предназначенные для выпущенной версии, привязаны к этой «стабильной» ветке и, в конечном счете, объединены в магистраль (или ветку «по умолчанию»). Все новые, возможно отсталые, несовместимые, изменения привязаны к стволу. (Обратите внимание: я * не * предлагаю использовать Hg, я информирую пользовательскую часть о том, как работает их рабочий процесс.) – Isxek