Операция Git для переноса изменений Для этого применяют команду git cherry-pick Она накладывает выбранный коммит на активную ветку После этого автоматически создаётся новый коммит с аналогичным набором изменений Команда подходит для выборочного копирования изменений без слияния всей ветки При возникновении конфликтов их разрешают вручную, после чего выполняют git cherry-pick --continue Для более сложных сценариев можно использовать связку git format-patch + git am На практике это позволяет переносить конкретные исправления между ветками, например багфиксы из dev в release
Как перенести отдельный коммит из одной ветки Git в другую?
Операция Git для переноса изменений Для этого применяют команду git cherry-pick Она накладывает выбранный коммит на активную ветку После этого автоматически создаётся новый коммит с аналогичным набором изменений…
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Как перенести отдельный коммит из одной ветки Git в другую?
- Операция Git для переноса изменений
- Для этого применяют команду git cherry-pick
- Она накладывает выбранный коммит на активную ветку
- После этого автоматически создаётся новый коммит с аналогичным набором изменений
- Команда подходит для выборочного копирования изменений без слияния всей ветки
- При возникновении конфликтов их разрешают вручную, после чего выполняют git cherry-pick --continue
- Для более сложных сценариев можно использовать связку git format-patch + git am
- На практике это позволяет переносить конкретные исправления между ветками, например багфиксы из dev в release
Подробный ответ
Основной ответ
В Git для переноса коммита между ветками доступны git cherry-pick, git rebase и git merge — выбор зависит от задачи. В наиболее распространённом случае используют cherry-pick: команда берёт один конкретный коммит или несколько коммитов и применяет их поверх другой ветки, сохраняя внесённые изменения в истории.
Ключевые моменты
- С помощью git cherry-pick изменения из указанного коммита извлекаются и добавляются в текущую ветку. При этом создаётся новый коммит с теми же изменениями, но уже с другим хешем. Такой подход удобен для выборочного переноса отдельных коммитов.
- Если перенести нужно несколько коммитов, можно задать диапазон, например git cherry-pick A..B, либо перечислить их через пробел.
- Когда выбранный коммит конфликтует с состоянием текущей ветки, cherry-pick приостанавливается. После ручного разрешения конфликтов необходимо выполнить git cherry-pick --continue.
- Если требуется перенести всю историю изменений, вместо этого используют git rebase или git merge. Однако для выборочного переноса коммитов обычно лучше подходит cherry-pick.
Практический контекст
В рабочих проектах cherry-pick часто используют, чтобы быстро перенести исправления ошибок из веток разработки в релизные ветки или хотфиксы, не включая остальные изменения. Например, в GitLab для cherry-pick предусмотрен UI, а в командной строке эта операция позволяет просто и безопасно отправить конкретный коммит в production-ветку.