Мы только начали использовать git для нашего производственного кода, и у нас возникла небольшая проблема в нашем рабочем процессе. Нам нужно выяснить, как справляться с общими улучшениями кода / техническими исправлениями задолженности, возникающими при работе над функцией.
Рабочий процесс, который мы приняли, состоит в том, чтобы использовать «разработку» в качестве основной ветви интеграции и разрабатывать все функции в функциональных ветках вне «разработки». Когда функция завершена, разработчик создает запрос на извлечение, и все проверяют его, чтобы предоставить комментарии, прежде чем он будет снова включен в разработку. Кажется, это работает очень хорошо.
Проблема, с которой мы сталкиваемся, заключается в том, что во время рутинной разработки функции разработчик может захотеть изменить / реорганизовать какой-то общий код для улучшения системы или устранения технического долга. Это изменение ценно, но не связано напрямую с разрабатываемой функцией.
Исходя из нашего рабочего процесса, это действительно должно быть сделано в другой ветке, которая проходит через собственный запрос на просмотр и проверку кода, прежде чем приступить к разработке. Однако если мы заставим их сделать это, как они смогут вернуть изменения в свою функциональную ветку в то же время, ожидая полного пересмотра кода и объединения кода в разработку.
У нас есть следующие идеи:
1) cherry-pick изменения из ветки 'refactorX' в нашу ветку функций. Продолжайте разработку и дайте git (надеюсь) выяснить, когда мы вернемся к разработке, в которой уже есть изменения по сравнению с веткой рефакторинга.
2) Объединить ветку 'refactorX' с нашей веткой возможностей и продолжить разработку. (примечание: ветвь разработки для 'refactorX', возможно, была позже в истории разработки, поэтому мы думаем, что это может иметь проблемы)
3) Какой-то другой умный вариант, о котором мы пока не знаем. :)
То, что мы ищем, - это руководство по передовым методам работы с этой частью рабочего процесса. После того, как мы поговорим об этом больше, мы знаем, что это будет происходить часто, и мы хотим найти плавный и эффективный способ справиться с этим в нашем рабочем процессе.
Есть рекомендации?