Хотя я уже некоторое время использую git, я все еще считаю себя n00b, поэтому, пожалуйста, не будьте слишком резкими со мной.
Я поддерживаю "корпоративную" систему мэйнфреймов, так какдве неидентичные копии.Давайте назовем их Test and Production.В мэйнфрейме нет ничего, что я (или, возможно, любой из вас) мог бы считать системой контроля версий, поэтому я использую git на рабочем столе для обеспечения контроля версий.Вот основные особенности моего текущего рабочего процесса:
Рабочий стол и мэйнфрейм "синхронизированы" с FTP.В конце концов, все работы по разработке, написанные на мэйнфрейме или на ПК, заканчиваются на ПК в ветке git.
У меня нет доступа к какому-либо «современному»Технология развертывания, такая как Hudson
У меня есть две основные ветви, называемые Test и Prod.Из-за (унаследованной) структуры продукта существует ряд различий в коде между экземплярами Test и Prod.Например, все панели дисплея должны четко определять, является ли это Test или Prod, но нет способа настроить это в одной точке.
Обычно я создаю другие ветви,Специально для конкретных подпроектов разработки.
Общая разработка выполняется в ветке Test с несколькими коммитами.Когда все готово, они выбираются в Prod, помечаются номером изменения и загружаются после утверждения.
Аварийные работы, к счастью, редкие, выполняются на ветке Prod и собираются в тесте.
Сбор вишни очень редко, требует ручного слияния.
Я хотел бы улучшить этот рабочий процесс.В настоящее время мой репозиторий полон параллельных идентичных изменений в двух ветвях.
Я думаю, что предпочел бы сделать это следующим образом (для Test -> Prod):
Как только разработка будет готова, создайте новую ветку в HEAD of Prod
Свернуть этот набор изменений развития в одно изменение в новой ветви
Объединить эту новую ветку с Prod.Имейте в виду, что их общим предком является до изменений, которые делают Test отличным от Prod
Кажется, что git rebase -i
может сделать эту работу, но я должен признатьсячто git rebase
- это мои pons asinorum , и каким-то образом мне удалось несколько раз испортить мое дерево.
Итак, мои вопросы таковы:
Пожалуйста, предложите лучший способ, в пределах ограничений продукта.
Если мой предпочтительный подход жизнеспособен, может кто-нибудь предложить правильные параметры для git rebase -i
?