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