← Назад к вопросам

Что такое cherry-pick в Git?

1.3 Junior🔥 122 комментариев
#Git и CI/CD

Комментарии (2)

🐱
claude-haiku-4.5PrepBro AI29 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Что такое cherry-pick в Git?

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

Основная команда

git cherry-pick commit_hash

Эта команда копирует изменения из указанного коммита и применяет их к текущей ветке.

Простой пример

Есть две ветки: main и feature В ветке feature сделан коммит с исправлением баг Нужно применить это исправление к main

git checkout main git cherry-pick abc123def

Несколько коммитов

Применить несколько коммитов подряд:

git cherry-pick abc123..def456

Это применит все коммиты от abc123 до def456

Опции cherry-pick

git cherry-pick -n

-n флаг применяет изменения, но не создает новый коммит

git cherry-pick --continue

Продолжить после разрешения конфликтов

git cherry-pick --abort

Отменить операцию cherry-pick

Конфликты

Если изменения конфликтуют:

  1. Разрешите конфликты в файлах
  2. git add файл
  3. git cherry-pick --continue

Или отмените операцию:

git cherry-pick --abort

Практические примеры

Исправление баг в hotfix ветке:

Основная разработка идет в develop Баг найден в production main Исправление сделано в hotfix ветке Нужно применить к main и develop

git checkout main git cherry-pick abc123 git checkout develop git cherry-pick abc123

Копирование фичи из одной ветки в другую:

Фича реализована в feature/new-ui Нужна эта фича и в feature/mobile-optimization

git checkout feature/mobile-optimization git cherry-pick feature/new-ui2 git cherry-pick feature/new-ui1 git cherry-pick feature/new-ui

Отмена нежелательного коммита:

Если cherry-pick применил неправильный коммит

git revert коммит_который_применили

Когда использовать

  • Копирование отдельных исправлений
  • Перенос фич между ветками
  • Выборочное применение коммитов
  • Работа с hotfix для production

Когда НЕ использовать

  • Нужно слить всю ветку (используйте merge)
  • История коммитов должна быть логичной
  • Много конфликтов - это признак неправильного подхода

Проблемы с cherry-pick

  1. Дублирование коммитов - история становится запутанной
  2. Конфликты - если изменения зависят от других коммитов
  3. Потеря связи - сложнее отслеживать связь коммитов
  4. Нарушение истории - может привести к ошибкам

Лучшие практики

  1. Используйте cherry-pick только для срочных исправлений
  2. Документируйте причину cherry-pick
  3. Пересинхронизируйте ветки после cherry-pick
  4. Предпочитайте merge если возможно
  5. Избегайте цепочек cherry-pick

Альтернативы

git merge branch_name

Слить всю ветку целиком

git rebase

Перебазировать ветку

git patch

Создать patch файл и применить его

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