Я не вижу здесь проблемы.
У вас уже есть это каждый раз с вашей masterветкой, которая постоянно меняется, пока функции разрабатываются и затем объединяются
Итак, в вашем конкретном примере вы сначала создаете feature_xxx_backendветку и разрабатываете изменения бэкэнда. Когда это будет сделано, ветвь будет готова к рассмотрению и будет объединена masterпосле завершения проверки.
Итак, просто начните другую ветку feature_yyy_frontend. Вероятно, вы захотите перейти прямо из филиала feature_xxx_backend, чтобы эти изменения уже были в вашем филиале. затем просто разработайте внешний интерфейс, если ветвь была master.
Когда feature_xxx_backendветвь изменяется, например, потому что есть вещи, которые возникают во время проверки, которые необходимо учитывать, просто внесите эти изменения и объедините их в feature_yyy_frontendветку. Затем продолжите на ветке интерфейса.
Как только проверка внутренней ветки завершена, она объединяется в master. На данный момент, было бы целесообразно , чтобы перебазироваться в feature_yyy_frontendветви на master, так что рецензенты нужно только рассмотреть новые изменения , которые эта отрасль вносит свой вклад в master, и не нужно повторно просмотреть изменения , сделанные для внутреннего интерфейса (которые уже были утверждены ).
Это также может быть сделано, когда у вас есть две, три или более зависимых веток. Если у вас есть две ветви функций, от которых вы зависите, просто создайте производную ветвь, в которой объединены обе функции. Оттуда ветвь, разработайте третью функцию, объединяйте обе ветви функции по пути, когда каждая из них изменяется. Когда обе функции завершены и объединены в производную ветвь, переназначьте ее или, если они объединены в основную, перебазируйте в основную.
Перебазирование (как предложено выше) действительно мощно и помогает вести чистый журнал изменений, делая обзор намного проще.