Я обнаружил, что переупорядочение коммитов через git rebase -i
может не дать того же дерева конечных результатов при работе с удаленными файлами - и может сделать это без предупреждения или сообщения об ошибке.
Принять следующую последовательность коммитов
A - Add foo1
B - Add foo2
C - Remove foo2, Add Foo3
Использование git rebase -i
для изменения порядка коммитов с A-B-C на A-C-B приводит к тому, что foo2 присутствует в HEAD.
Есть ли способ переупорядочить коммиты, которые лают, если переупорядочение изменит окончательное результирующее дерево?
Я думаю, git rebase
внутренне использует git am
для применения патчей. Я не вижу соответствующих аргументов для git am
, которые могли бы быть использованы для принудительного сбоя при удалении несуществующего файла, что, как я думаю, было бы необходимо. Нужно ли исправлять исходный код git, чтобы получить то, что я хочу?