Назад к вопросам
Junior
102
questionbank

Что такое cherry-pick в контексте систем контроля версий?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Cherry-pick позволяет применить изменения из одного или нескольких отдельных коммитов в другой ветке. Вместо слияния всей ветки, выбираются только нужные коммиты.

Применение:

  • Применение исправлений из одной ветки в другую без слияния всех изменений.
  • Выборочное перенесение функциональности из одной ветки в другую.
  • Отмена коммита в текущей ветке путем cherry-pick'а предыдущего состояния.

Синтаксис:

// Применить один коммит
git cherry-pick <commit_hash>
// Применить несколько коммитов
git cherry-pick <commit_hash1> <commit_hash2> ...
// Применить диапазон коммитов (эксклюзивно начальный, включительно конечный)
git cherry-pick <начальный_commit>^..<конечный_commit>

Конфликты слияния могут возникнуть, если cherry-picked изменения затрагивают те же строки, что и изменения в целевой ветке. Их нужно разрешать вручную.

Недостатки:

  • Может усложнить историю, создавая дублирующиеся изменения в разных ветках.
  • Не рекомендуется для регулярного переноса больших объемов изменений.