Ответ
git cherry-pick — это команда для выборочного применения изменений из одного или нескольких существующих коммитов в текущую ветку. Она не сливает ветки, а копирует конкретные патчи.
Типичные сценарии использования:
- Перенос исправления (hotfix) из ветки
mainв веткуdevelop. - Восстановление случайно удаленного коммита, если известен его хеш.
- Выборочное применение фич из одной длинноживущей ветки в другую.
Базовый синтаксис:
# Переключиться на целевую ветку
git checkout feature-branch
# Применить коммит с указанным хешем
git cherry-pick abc123def
# Применить несколько коммитов (порядок важен!)
git cherry-pick abc123 def456
Ключевые флаги и нюансы:
-x— добавляет в сообщение нового коммита строку(cherry picked from commit ...). Рекомендуется для аудита.-n(--no-commit) — применяет изменения, но не создает коммит, позволяя объединить несколькоcherry-pickв один.- Конфликты: как и при слиянии, могут возникнуть конфликты, которые нужно разрешить вручную, после чего выполнить
git cherry-pick --continue. - Важно:
cherry-pickсоздает новый коммит с другим хешем, даже если изменения идентичны. Злоупотребление может "засорить" историю. Для систематического переноса изменений лучше использоватьgit mergeилиgit rebase.