Назад к вопросам
Junior
69
questionbank
Что такое cherry-pick?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
git cherry-pick применяется для переноса одного или нескольких коммитов из одной ветки в другую.
Принцип работы:
- Выбирает указанный коммит (или коммиты) в исходной ветке.
- Применяет изменения, содержащиеся в этих коммитах, к текущей активной ветке.
- Создает новые коммиты в текущей ветке с теми же изменениями и сообщениями, что и исходные.
Когда использовать:
- Перенос конкретного исправления ошибки из одной ветки (например, production) в другую (например, разработка), не затрагивая другие изменения.
- Применение изменений из одной feature-ветки в другую, не сливая их целиком.
- Отмена некорректного merges с сохранением отдельных коммитов.
Отличия от merge и rebase:
merge: Объединяет всю историю изменений из одной ветки в другую.rebase: Переписывает историю коммитов, перемещая их на новую базу.cherry-pick: Применяет только выбранные коммиты, создавая новые и не изменяя историю исходных коммитов.
Основная команда:
# Перенос одного коммита
git cherry-pick <commit-hash>
# Перенос нескольких коммитов (в порядке их указания)
git cherry-pick <commit-hash-1> <commit-hash-2> ...
Пример:
Допустим, есть две ветки: main и feature. В ветке feature сделан коммит fix-typo. Нужно перенести этот коммит в ветку main.
# Переключаемся на целевую ветку
git checkout main
# Выполняем cherry-pick, используя хэш коммита из ветки feature
git cherry-pick 7f3bca2 # Пример хэша коммита
После выполнения команды в ветке main появится новый коммит с теми же изменениями, что и fix-typo, но с другим хэшем.