Как применить патч в Git (git apply, git am)

Как применить патч в Git

0

Для применения патчей в Git существуют две команды, это git apply и git am.

Как применить патч (git apply)

Для применения патчей, которые были созданы командой git diff, используется команда git apply:

git apply my-patch.patch

Данная команда применяет патч к вашим текущим файлам в рабочем каталоге. Никаких коммитов не создается.

Как применить патч и создать коммит (git am)

Если патч был создан на основе какого-либо коммита, и для создания патча была использована команда format-patch, то такой патч содержит в себе информацию об авторе коммита и комментарий (сообщение) к коммиту.

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

git am --signoff < my-patch.patch

Использование ключа --signoff позволяет дописать в комментарий к коммиту свое имя — в комментарии к коммиту будет добавлена строка «Signed-off-by: ваше имя». Делается это для того, чтобы в будущем определить, кто именно применил данный патч.

Как аккуратно применить патч

Хорошей практикой является применение патча с предварительной проверкой того, что этот патч будет успешно применен. То есть вы до применения патча сможете подготовить свой код. Это позволяет избежать конфликтов и некоторых других последствий.

Сначала можно посмотреть, что именно будет изменять патч, для этого выполняется команда git apply с ключом --stat. Эта команда выводит статистику о патче и не изменяет никаких ваших файлов.

git apply --stat my-patch.patch

Затем проверяем, что будет, если применить патч. То есть можно проверить, не применяя патч, что произойдет, если его применить. Для этого используется команда git apply с ключом --check. Данная команда только выполняет проверку, патч не применяется, ваши файлы не изменяются.

git apply --check my-patch.patch

Если никаких ошибок не отобразилось, то при применении данного патча никаких проблем не будет. В противном случае вы сможете увидеть, какие возникнут ошибки, если применить патч.

Теперь можно применить патч:

git apply my-patch.patch

Или, используя git am:

git am --signoff < my-patch.patch
0

Комментарии

Комментариев пока не было.

Написать комментарий

Ваше имя:
Текст комментария: