Как применить патч, созданный с помощью git format-patch? - PullRequest
167 голосов
/ 12 февраля 2010

У меня есть 2 локальных репозитория git, оба указывают на один и тот же удаленный репозиторий.

В одном репозитории git, если я сделаю git format-patch 1, как я могу применить этот патч к другому репозиторию?

Ответы [ 6 ]

244 голосов
/ 12 февраля 2010

Примечание. Сначала вы можете просмотреть, что будет делать ваш патч:

Сначала статистика:

git apply --stat a_file.patch

Затем пробный прогон для выявления ошибок:

git apply --check a_file.patch

Наконец, вы можете использовать git am, чтобы применить ваш патч в качестве коммита: он позволяет подписать примененный патч.
Это может быть полезно для дальнейшего использования.

git am --signoff < a_file.patch 

См. Пример в этой статье :

В вашем журнале git вы обнаружите, что сообщения о фиксации содержат тег «Подписано». Этот тег будет прочитан Github и другими, чтобы предоставить полезную информацию о том, как коммит оказался в коде.

Example

118 голосов
/ 12 февраля 2010
git apply name-of-file.patch
31 голосов
/ 12 февраля 2010

Или, если вы пинаете его, старая школа:

cd /path/to/other/repository
patch -p1 < 0001-whatever.patch
19 голосов
/ 12 февраля 2010

Если вы хотите применить его в качестве коммита , используйте git am .

15 голосов
/ 20 сентября 2018

Сначала вы должны заметить разницу между git am и git apply

Когда вы используете git am, вы обычно хотите применить много патчей. Таким образом следует использовать:

git am *.patch

или просто:

git am

Git автоматически найдет патчи и применит их по порядку; -)

UPD
Здесь вы можете найти, как генерировать такие патчи

11 голосов
/ 14 мая 2018

Если вы используете IDE JetBrains (например, IntelliJ IDEA, Android Studio, PyCharm), вы можете перетащить файл исправления и вставить его в IDE, после чего появится диалоговое окно, отображающее содержимое исправления. Все, что вам нужно сделать сейчас, это нажать «Применить патч», и коммит будет создан.

...