Большинство git rebase
команд на самом деле do run git cherry-pick
.
Откат, который вы видите, происходит из одной формы git rebase
, которая по историческим причинам не использует git cherry-pick
.Эта одна форма используется, когда вы вызываете non -интерактивный git-rebase
и , не использующий какие-либо опции, которые заставляют его использовать новый и улучшенный метод rebase-invoking.
Старая форма обычно производит тот же эффект.Он состоит из использования git format-patch
для преобразования каждого коммита в патч, а затем использования git am --3way
для применения всех отформатированных патчей.Опция --3way
сообщает git am
, что если патч нельзя применить вслепую, он должен использовать строки index
в каждом отформатированном патче, чтобы получить часть того, что git cherry-pick
сделал бы автоматически.
Если вы хотите, чтобы rebase использовал напрямую git cherry-pick
, вы можете:
- предоставить опцию
-k
или - предоставить опцию
-m
,или - поставьте опцию
-s <em>strategy</em>
, или - поставьте опцию
-X <em>extended-option</em>
, или - используйте интерактивную перебазировку (
-i
или --interactive
), или - используйте параметр
--autosquash
или - используйте параметр
-p
или (Git 2.18+) -r
.