Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Git: cherry pick

Как перенести коммит из одной ветки в другую?

Этот вопрос проверяет знание работы с Git

Короткий ответ

Есть два основных способа:

  1. git cherry-pick — копирует конкретный коммит в текущую ветку.

  2. Интерактивный rebase (git rebase -i) — позволяет переупорядочивать или переносить несколько коммитов.

Пример через cherry-pick:

git checkout target-branch       # Переключаемся на ветку, куда переносим
git cherry-pick abc123          # abc123 — хеш коммита, который нужно перенести

Длинный ответ

  1. Использование git cherry-pick

    Этот метод подходит, если нужно перенести один или несколько конкретных коммитов.

Шаги:

  1. Узнайте хеш коммита, который нужно перенести:

    git log source-branch --oneline

    Пример вывода:

    abc123 Добавил новую функцию
    def456 Исправил баг
  2. Переключитесь на ветку, куда переносите коммит:

    git checkout target-branch
  3. Выполните cherry-pick:

    git cherry-pick abc123

Что произойдет:

  • Git применит изменения из коммита abc123 в target-branch как новый коммит (с другим хешем).

Если возникли конфликты:

  • Решите их вручную, затем выполните:

    git add .
    git cherry-pick --continue
  1. Интерактивный rebase (git rebase -i)

    Подходит для переноса нескольких коммитов или изменения их порядка.

Шаги:

  1. Переключитесь на ветку-источник:

    git checkout source-branch
  2. Запустите интерактивный rebase:

    git rebase -i target-branch

    Откроется редактор со списком коммитов.

  3. Оставьте только нужные коммиты (остальные закомментируйте, поставив # в начале строки).

  4. Сохраните файл и закройте редактор.

  5. Переключитесь на целевую ветку и выполните слияние:

    git checkout target-branch
    git merge source-branch
  1. Альтернатива: git merge с выбором коммитов

    Если нужно перенести все коммиты из одной ветки в другую:

git checkout target-branch
git merge source-branch

Важные нюансы

  • cherry-pick создает новый коммит (даже если изменения идентичны).

  • Rebase переписывает историю — не используйте его для опубликованных веток.

  • Если коммит зависит от других изменений, возможны конфликты.

Пример конфликта при cherry-pick:
Если в коммите abc123 изменен файл app.js, но в target-branch этот файл уже изменен, Git запросит ручное разрешение конфликта.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    3

  • Сложность:

    7

Навыки

  • Git

    Git

Ключевые слова

#cherry pick

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию