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