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