Страницы

Поиск по вопросам

четверг, 4 октября 2018 г.

Перенести коммит из одной ветки в другую

Каким образом в Git перенести отдельный коммит из одной ветки А в ветку Б? При этом коммит содержит файлы, которые были изменены в ветке Б.


Ответ

В Git есть специальная команда cherry-pick, которая позволяет вставлять в текущую ветку изменения из любого коммита. Работает она так:
git cherry-pick test
Пример выше применяет последний коммит из ветки test в текущую ветку.
При желании, можно перенести более одного коммита за один раз. Например:
git cherry-pick 8fe1498 mega_fix~3 v1.0.1
Из примера выше видно, что на коммит можно сослаться сразу несколькими способами:
Используя SHA хэш коммита (или его сокращенный вариант). Используя имя ветки (можно использовать синтаксис ^ и ~). Используя тэг, которым помечен коммит.
Более подробная информация о том, как сослаться на коммит есть в документации к Git
Стоит отметить, что в отличии от слияния (merge) при cherry-pick переносятся только изменения, а не сам коммит полностью. При этом, в целевой ветке создается новый коммит (коммиты) содержащий необходимые изменения.

Комментариев нет:

Отправить комментарий