Во-первых, давайте просто проясним: единого «правильного» рабочего процесса для Git не существует. Есть просто рабочие процессы, которые работают - и, в частности, рабочие процессы, которые работают для вас .
Рабочий процесс, который вы обрисовали в общих чертах, обычно называется рабочим процессом "ветвь объекта" (где вы создаете ветку для работы с определенной функцией / исправлением / чем угодно, а затем объединяете ее обратно) и является совершенно законным рабочим процессом.
Если вы когда-либо работаете только с одной функцией за раз, вы можете просто выполнить фиксацию непосредственно перед мастером, а затем отправить обновленную версию. Однако это становится трудным, если вы работаете с несколькими различными функциями одновременно (тогда как рабочий процесс ветви функций корректно обрабатывает многие одновременные функции).