intermediate
Cherry-pick
Переносите выбранное изменение на другую ветку для hotfix, backport и точечного восстановления.
Cherry-pick применяет патч одного или нескольких коммитов на текущую ветку. Новый коммит получает **другой хеш**, даже если diff совпадает — это не тот же объект, что исходный коммит.
git switch release/2.0
git cherry-pick abc1234
git cherry-pick main~3..main # диапазон (правила exclusive..inclusive)
Практично для hotfix, backport в release и точечного переноса без merge несвязанной истории. Порядок важен при зависимых коммитах.
На интервью: разные идентичности одного изменения на ветках, конфликты, проверка backport, когда безопаснее обычный merge.
Типовые ошибки: cherry-pick зависимых коммитов не по порядку — собирается, но ведёт себя неверно; пропуск тестов на backport; cherry-pick вместо разбора merge-конфликтов.
Компромисс — хирургический перенос изменений против целостности merge и полного контекста.
Чеклист:
- По возможности независимые коммиты.
- Проверяйте зависимости в диапазоне.
- Те же тесты и release notes, что при обычном merge.
- Merge, если нужен контекст всей ветки.