Перебазируйте как профессионал: выборочное добавление коммитов в ветку

При разработке программного обеспечения процесс перемещения позволяет интегрировать изменения из одной ветки в другую. Однако бывают случаи, когда вам нужно перенести в ветку только определенные коммиты, а не объединять всю ветку. В этой статье мы рассмотрим несколько способов выполнения этой задачи, используя разговорный язык и приведя примеры кода.

Метод 1: интерактивное перебазирование
Функция интерактивного перебазирования в Git позволяет выбирать и изменять отдельные коммиты во время процесса перебазирования. Начните с выполнения следующей команды:

git rebase -i <commit>

Замените <commit>на хеш фиксации или имя ветки, на которую вы хотите выполнить перебазирование. Откроется интерактивный редактор, отображающий список коммитов. Просто удалите строки, соответствующие коммитам, которые вы хотите исключить, сохраните файл, и перебазирование продолжится.

Метод 2: выбор из вишен
Выбор из вишни — еще один удобный метод добавления определенных коммитов в ветку. Это позволяет вам выбирать отдельные коммиты и применять их к другой ветке. Используйте следующую команду:

git cherry-pick <commit>

Замените <commit>на хеш фиксации, который вы хотите добавить. Вы можете повторить эту команду для нескольких коммитов, выбирая каждый из них в нужную ветку.

Метод 3: Внесение исправлений
Внесение исправлений — это ручной подход, при котором вы создаете файл исправления для каждого коммита, а затем применяете эти исправления к целевой ветке. Вот как это можно сделать:

git format-patch -1 <commit>
git am < patchfile

Замените <commit>на хеш коммита, который вы хотите включить. Повторите эти шаги для каждого коммита, который вы хотите добавить.

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