Когда мне поручено очистить ветку длинных функций, я обнаружил, что в истории есть много коммитов, которые нужно раздавить / исправить или перефразировать. Я хочу сохранить слияния, поскольку они могут иметь сложные способы разрешения конфликтов, которые я не могу сделать.
Представьте себе следующие коммиты:
master: P0 - P1 - P2 - P3 --------------
\ \ \
feature: A - M1 - B - C1 - C2 - C3 - D - M2 - E
Где M
s - это слияния из одной ветви (master) 2.
И я хочу исправить C2
и C3
в C1
(и сказать reword C1
).
Когда я делаю:
git rebase -i -r master
Я вижу все коммиты и слияние, и помечаю их f
и r
по желанию.
Когда эта перебазировка будет выполнена, и я достигну коммита слияния M2
, git будет жаловаться на конфликт. Я предполагаю, потому что это не может применить объединение, так как коммиты были переписаны как следствие исправлений.
Есть ли способ заставить git выполнять такое слияние без конфликтов? Учитывая, что я не изменил какие-либо строки содержимого, ours
или theirs
всегда будут правильными в этом случае, и как бы я это сделал в середине выполнения этой ребазировки.