Команда git cherry-pick позволяет брать конкретный коммит из одной ветки и применять его в другой, не трогая остальные. dzen.ru Это целенаправленный способ переноса определённых изменений между ветками без слияния всей ветки целиком. blog.openreplay.com
Процесс работы команды: habr.com
- Git создаёт патч (diff) выбранного коммита. habr.com
- Сохраняет метаданные оригинального коммита (временную метку, автора) для поддержания хронологии. habr.com
- Анализирует состояние файлов в целевой ветке. habr.com
- Пытается применить изменения к текущему состоянию (при конфликтах требуется ручное разрешение). habr.com
- Создаёт новый коммит с уникальным хешем (из-за нового родительского коммита и времени создания). habr.com
Некоторые ситуации, в которых помогает git cherry-pick:
- Выборочные исправления. dzen.ru Перенос конкретного фикса без всего «набора». dzen.ru
- Горячее исправление багов. dzen.ru Например, баг пофиксили в develop, но релиз в проде — и нужно срочно подтянуть только этот фикс. dzen.ru
- Точечная интеграция чужих фич. dzen.ru Команда работает в разных ветках — и cherry-pick позволяет собирать нужные куски, как конструктор. dzen.ru