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, если нужен контекст всей ветки.