Menu
Coddy logo textTech

Git Cherry-pick

Последнее обновление

git cherry-pick копирует изменения из одного или нескольких конкретных коммитов и применяет их к вашей текущей ветке в виде новых коммитов. Так можно взять одно исправление из другой ветки, не сливая всю эту ветку целиком - удобно для бэкпорта хотфикса или для того, чтобы вытащить один коммит из ветки функциональности.

Попробуйте эти команды в терминальном playground - настоящая оболочка в вашем браузере, ничего не нужно устанавливать.

Синтаксис

CommandWhat it does
git cherry-pick <hash>Применяет один коммит к текущей ветке
git cherry-pick <a> <b>Применяет несколько коммитов по порядку
git cherry-pick <a>..<b>Применяет диапазон коммитов (исключая a)
git cherry-pick -n <hash>Применяет изменения, но пока не коммитит
git cherry-pick -x <hash>Отмечает исходный коммит в сообщении

Во время cherry-pick

Если cherry-pick приводит к конфликту, разрешите его и продолжите.

CommandWhat it does
git cherry-pick --continueПродолжает после разрешения конфликтов
git cherry-pick --abortОтменяет и восстанавливает ветку
git cherry-pick --skipПропускает текущий коммит

Часто задаваемые вопросы о git cherry-pick

Что делает git cherry-pick?
Он берёт изменения, внесённые конкретным коммитом, и применяет их к вашей текущей ветке в виде совершенно нового коммита (с новым hash). В отличие от merge или rebase, он не переносит целую ветку - только тот коммит или коммиты, которые вы указали.
Когда стоит использовать cherry-pick?
Используйте его, когда вам нужен конкретный коммит в другом месте - например, чтобы сделать бэкпорт исправления ошибки из main в release-ветку или вытащить один полезный коммит из ветки функциональности, не сливая всё. Если вам нужна вся ветка целиком, используйте merge или rebase.
Как сделать cherry-pick нескольких коммитов?
Перечислите их: git cherry-pick <a> <b> <c> применяет каждый по порядку. Для непрерывного диапазона используйте git cherry-pick <start>..<end>, который применяет каждый коммит после start вплоть до end включительно. Добавьте <start>^..<end>, если хотите включить и сам start.
Что делать, если cherry-pick вызывает конфликт?
Git приостанавливается и помечает конфликтующие файлы. Разрешите их, выполните git add для результатов, затем запустите git cherry-pick --continue. Чтобы полностью отменить операцию, используйте git cherry-pick --abort, который возвращает вашу ветку в состояние до начала cherry-pick.
Можно ли попрактиковаться в этом онлайн?
Да. Откройте терминальный playground, чтобы выполнить git cherry-pick в настоящей оболочке в вашем браузере - ничего не нужно устанавливать. Бесплатный интерактивный курс Git от Coddy также пошагово охватывает перенос коммитов между ветками.
Coddy programming languages illustration

Изучайте Git с Coddy

НАЧАТЬ