Страницы

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

среда, 27 ноября 2019 г.

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

#git #контроль_версий


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


Ответы

Ответ 1



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

Ответ 2



Посмотрите на git cherry-pick, например тут. Эта команда позволяет выдернуть определенный коммит с одной ветки и применить его к текущей ветке. При этом он станет новым коммитом. Ну и возможно потом нужно будет разрулить конфликты слияния.

Ответ 3



git cherry-pick найдёт коммит по его хэшу sha1 и вольёт его в текущую ветку Подробнее тут.

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

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