Я не могу помочь сделать перебазирование проще, но могу объяснить, почему это не «простая перестановка».В качестве примера возьмем один файл с одной строкой текста, добавленной к ревизии.На первом коммите это выглядит так:
Commit 1
На втором коммите, так как вы изначально вывели их из строя, это выглядит так:
Commit 1
Commit 2
Commit 3
На третьем коммите,который был вашим вторым снимком, он выглядит следующим образом:
Commit 1
Commit 2
Git имеет дело с патчами , поэтому для git серия коммитов выглядит следующим образом:
- Добавьте файл со строкой «Commit 1»
- Добавьте строки со словами «Commit 2» и «Commit 3» после строки, содержащей «Commit 1»
- Удалите строку с надписью «Фиксация 3» после строки с надписью «Фиксация 2»
Когда вы переупорядочиваете ее, она выглядит следующим образом:
- Добавитьфайл со строкой «Commit 1»
- Удалите строку «Commit 3» после строки «Commit 2»
- Добавьте строки «Commit 2» и «Фиксация 3 "после строки с надписью" Фиксация 1 "
Он переходит ко второму шагу, не видит строк с" Фиксацией 2 "для сравнения, не знает, что делать, поэтомутребуется ручное слияние.
Вы вручную разрешаете слияние, а затем на следующем шаге git видит две строки там, где он ожидал, и снова требует ручного слияния.