Это не рекомендуется или что-то в этом роде ... это просто то, что вы можете сделать, и нет никаких причин не делать этого, если вы осторожны в отношении того, какие изменения составляют каждую функцию при перемещенииих вокруг .... подумайте: при перебазировании.
Так что ... просто в качестве примера .... если вы хотите отделить функцию b от функции a в данный момент времени, вы можете сделать это путемДелаем это:
git rebase --onto some-branch featurea featureb
Вы просите git переместить ревизии, составляющие featureb, не обращая внимания на ревизии из featurea, поверх некоторой ветви.