Использование git cherry-pick
git rebase
- это git cherry-pick
на стероидах.
Если у вас есть только несколько коммитов для перемещения: вы можете использоватьgit cherry-pick
, чтобы выбрать их один за другим
# move back to B
git checkout B
# start a branch here, and use it as the active branch
git checkout -b wip
# cherry-pick the commits you want to have
git cherry-pick D
git cherry-pick E
# if all went well : move the 'topic' branch to the current branch :
git checkout topic
git reset --hard wip
# delete the temporary 'wip' branch
git branch -d wip
Использование git rebase
Как упомянуто в комментариях: git rebase
может принимать дополнительные опции дляперемещать только диапазон коммитов.
Вы можете сделать то же, что и вышеупомянутая последовательность cherry-pick
, используя:
git rebase --onto B master topic
Дополнительное примечание: git rebase -i
git rebase
также имеет флаг --interactive|-i
:
git rebase -i --onto B master topic
С флагом -i
: прежде чем что-либо делать, git откроет для вас текстовый редактор, где всеПеребазированный коммит будет указан в списке.
Этот шаг имеет очевидное преимущество: он показывает вам, что будет применено (до его фактического применения), а также описывает больше действий, чем просто «выбор этого коммита».
Вы можете искать в Интернете более полные учебники по git rebase -i
, вот один из них:
Git Interactive Rebase, Squash, Amend и другие способыпереписывающей истории (мыслиbot.com)