Как перенести commit из одной git ветки в другую?
Слияние, rebase и конфликты
Перенести отдельный коммит в другую ветку можно командой `git cherry-pick`.
Как сделать
git log feature --oneline # найти хеш нужного коммита
git switch main
git cherry-pick a1b2c3dGit создаёт в main новый коммит с теми же изменениями, но другим хешем.
Полезное
- Несколько коммитов:
git cherry-pick a1b2c3d e4f5g6hили диапазонA..B. - При конфликте: исправить,
git add, затемgit cherry-pick --continue. -xдобавляет в сообщение ссылку на исходный коммит.
Если коммит нужно убрать из старой ветки
После cherry-pick в исходной ветке коммит остаётся — его убирают через git reset или git revert.
Коротко для собеседования
git cherry-pick <hash> копирует изменения коммита в текущую ветку новым коммитом; часто используют для хотфиксов.
Подробнее: Pro Git — cherry-pick