Вы столкнулись с разницей между перебазировкой в стиле git format-patch | git am
и перебазировкой в стиле git cherry-pick
.Как отметили j в комментарии , в большинстве случаев они не должны отличаться для большинства пользователей.Изначально они были разделены на два разных бэк-энда: git-rebase--am
и git-rebase--interactive
.(Они все еще есть, но различие ослабевает.)
Между ними есть одно важное различие, связанное с обнаружением переименования файлов.Поскольку rebase cherry-pick в буквальном смысле использует механизм git cherry-pick
, который использует базовый механизм merge , это позволяет обнаруживать переименование.Так как формат-патч ребазен не делает, его нет.Обнаружение переименования происходит медленно, поэтому, если переименований нет, иногда форматирование-исправление выполняется быстрее.
Вы можете заставить git rebase
использовать режим выбора вишни без перехода к интерактивной перезагрузке, добавив -m
или -s <strategy>
или -X <extended-strategy-option>
аргументы для любой перебазировки.