[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-git-chto-takoe-cherry-pick":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":17,"progress":18,"seo":19},1332,"chto-takoe-cherry-pick",44,"git","Git","📦","Что такое cherry-pick?","git cherry-pick — это команда, которая позволяет применить изменения из конкретного коммита к текущей ветке, создавая новый коммит с аналогичными изменениями.\n\n> Аналогия из жизни: cherry-pick — это как скопировать одну конкретную страницу из чужой тетради в свою, вместо того чтобы переписывать всю тетрадь целиком.\n\n### Как работает cherry-pick\n\n```\nДо cherry-pick:\nmain:    C1 -- C2 -- C3\n                \\\ndevelop:         C4 -- C5 -- C6\n\nЗадача: применить C5 к main\n\nПосле git cherry-pick C5:\nmain:    C1 -- C2 -- C3 -- C5'  (новый коммит с содержимым C5)\n                \\\ndevelop:         C4 -- C5 -- C6\n```\n\n### Использование\n\n```bash\n# Применить один коммит\ngit cherry-pick a1b2c3d\n\n# Применить несколько коммитов\ngit cherry-pick a1b2c3d e4f5g6h\n\n# Применить диапазон коммитов (НЕ включая начальный)\ngit cherry-pick a1b2c3d..e4f5g6h\n\n# Применить диапазон коммитов (включая начальный)\ngit cherry-pick a1b2c3d^..e4f5g6h\n\n# Cherry-pick без автоматического коммита (только применить изменения)\ngit cherry-pick --no-commit a1b2c3d\n\n# Отменить cherry-pick при конфликте\ngit cherry-pick --abort\n\n# Продолжить после разрешения конфликта\ngit cherry-pick --continue\n```\n\n### Типичные сценарии использования\n\nHotfix из develop в release-ветку:\n\n```bash\n# Нашли и починили баг в develop, нужно срочно применить фикс в release\ngit switch release\u002F2.0\ngit cherry-pick f1x2b3g  # хеш коммита с фиксом из develop\n```\n\nПеренос конкретной фичи без merge:\n\n```bash\n# Нужен только один коммит из чужой ветки\ngit cherry-pick abc1234\n```\n\n### Ключевые моменты\n\n- Cherry-pick создаёт новый коммит с новым SHA-1 хешем — это копия, а не перемещение\n- При cherry-pick переносятся только изменения коммита, а не состояние всех файлов на тот момент\n- Если коммит зависит от предыдущих изменений, cherry-pick может привести к конфликтам\n- Cherry-pick — это точечный инструмент. Для переноса множества коммитов лучше использовать merge или rebase\n\n### Частые ошибки\n\n- Частое использование cherry-pick вместо merge\u002Frebase — приводит к дублированию коммитов в истории\n- Cherry-pick коммита, который зависит от предыдущих — код может не компилироваться\n- Забывать, что cherry-pick создаёт дубликат — при последующем merge могут возникнуть конфликты\n- Не указывать `^` при диапазоне — `A..B` не включает коммит A\n\n### Как используется в 2026\n\n- Cherry-pick остаётся стандартным инструментом для hotfix-процессов\n- GitHub\u002FGitLab предоставляют кнопку Cherry-pick в интерфейсе для удобного переноса коммитов между ветками\n- В Trunk-Based Development cherry-pick используется для создания release-веток из main\n- Автоматизированные инструменты (например, Mergify) могут выполнять cherry-pick автоматически по метке PR\n\n> **На собеседовании:** объясните, что cherry-pick — это точечный перенос изменений одного коммита. Ключевое: создаётся новый коммит с новым хешем (копия, не перемещение). Назовите типичный сценарий — hotfix из develop в release. Покажите, что знаете ограничения: зависимости между коммитами и дублирование в истории.","","middle",[7,15,16],"branching","commands",[],null,{"title":20,"description":21,"ogTitle":22,"ogDescription":23,"keywords":24,"schemaAnswer":31,"featuredSnippetReady":32},"Что такое cherry-pick в Git — Gymterview","git cherry-pick: точечный перенос коммита между ветками. Как работает, синтаксис диапазонов, типичные сценарии (hotfix), ограничения и частые ошибки.","Git cherry-pick: перенос отдельных коммитов между ветками — Gymterview","cherry-pick создаёт копию коммита с новым SHA-1. Типичный сценарий — hotfix из develop в release. Ограничения и ошибки.",[25,26,27,28,29,8,30],"cherry-pick","git cherry-pick","перенос коммита","hotfix","диапазон коммитов","собеседование","git cherry-pick применяет изменения конкретного коммита к текущей ветке, создавая новый коммит с новым SHA-1 (копия, не перемещение). Типичные сценарии: hotfix из develop в release, перенос одного коммита из чужой ветки. Поддерживает диапазоны (A^..B включает A, A..B — нет). Ограничения: зависимости от предыдущих коммитов, дублирование в истории при последующем merge.",true]