Webdevkin
Онлайн-курсы, статьи по веб-разработке и интернет-магазинам, уроки vue.js

Изучаем Git. Урок 13.
git cherry-pick

Урок, в котором мы узнаем, как копировать коммиты с помощью git cherry-pick

Видеоурок

Конспект урока

Краткое содержание урока, основные инструкции для командной строки, полезные ссылки и советы.

Что такое git cherry-pick

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

Чем копирование отличается от мерджа

При мердже не происходит физического копирования коммитов.
git cherry-pick именно копирует коммиты, создает новый коммит со своим хэшем, но с таким же содержимым

Для чего может понадобиться копировать коммиты

Чтобы взять из другой ветки у коллеги или самого себя часть кода, который может понадобиться для своей задачи.
Например

  • Новый класс или компонент
  • Новая функция
  • Правки конфигов, без которых приложение не запустится
  • Правка важной баги

Простое копирование коммита

Команда cherry-pick без параметров создает копию коммита hash с тем же commit message

Копирование коммита с переименованием

При использовании флажка -e открывается редактор кода, в котором можно переименовать коммит, то есть изменить commit message

Копирование кода без создания коммита

Флажок -n позволяет не создавать коммит, а только скопировать его содержимое. Это нужно в тех случаях, когда необходимо скопировать только часть кода из коммита, или наоборот, дополнить копируемый коммит

Конфликты при копировании

Конфликты при git cherry-pick возникают по тем же причинам, что и обычные конфликты при мердже веток. Разрешаются они аналогичным способом

После разрешения конфликтов нужно воспользоваться командой git cherry-pick --continue

Отменить копирование в процессе разрешения конфликта можно командой git cherry-pick --abort

Заключение

git cherry-pick - инструмент, который позволяет копировать коммиты из одной ветки в другую. Пользуйтесь им осторожно, помните, что в итоге в ветку мастер попадут оба коммита: копируемый и скопированный.

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

Спасибо за внимание и до встречи!

Все уроки курса

* платные уроки

список обновляется...