Как применить патч, созданный с помощью git format-patch?
У меня есть 2 локальных репозитория git, оба указывают на один и тот же удаленный репозиторий.
В одном git-репозитории, если я делаю git format-patch 1, как я могу применить этот патч к другому репозиторию?
Ответ 1
Примечание. Сначала вы можете просмотреть, что будет делать ваш патч:
Сначала статистика:
git apply --stat a_file.patch
Затем пробный прогон для выявления ошибок:
git apply --check a_file.patch
Наконец, вы можете использовать git am чтобы применить ваш патч в качестве коммита: он позволяет вам подписать примененный патч. Это может быть полезно для дальнейшего использования.
В вашем журнале git вы обнаружите, что сообщения о коммитах содержат тег "Подписано". Этот тег будет прочитан Github и другими, чтобы предоставить полезную информацию о том, как коммит оказался в коде.
Ответ 2
git apply name-of-file.patch
Ответ 3
Или, если вы пинаете его старой школой:
cd /path/to/other/repository
patch -p1 < 0001-whatever.patch
Ответ 4
Если вы хотите применить его как коммит, используйте git am.
Ответ 5
Сначала вы должны заметить разницу между git am и git apply
Когда вы используете git am вы обычно хотите применить много патчей. Таким образом следует использовать:
git am *.patch
или просто:
git am
Git автоматически найдет патчи и применит их по порядку ;-)
UPD Здесь вы можете найти, как генерировать такие патчи
Ответ 6
Если вы используете IDE JetBrains (например, IntelliJ IDEA, Android Studio, PyCharm), вы можете перетащить файл исправления и поместить его в IDE, и появится диалоговое окно, отображающее содержимое исправления. Все, что вам нужно сделать сейчас, это нажать "Применить патч", и коммит будет создан.