У меня есть 2 локальных репозитория git, оба указывают на один и тот же удаленный репозиторий.
В одном репозитории git, если я делаю git format-patch 1
, как я могу применить этот патч к другому репозиторию?
Примечание. Сначала вы можете просмотреть, что будет делать ваш патч:
Сначала статистика:
git apply --stat a_file.patch
Затем пробный прогон для выявления ошибок:
git apply --check a_file.patch
Наконец, вы можете использовать его git am
для применения патча в качестве коммита: он позволяет подписать примененный патч.
Это может быть полезно для дальнейшего использования.
git am --signoff < a_file.patch
Смотрите пример в этой статье :
В вашем журнале git вы обнаружите, что сообщения о коммитах содержат тег «Подписано». Этот тег будет прочитан Github и другими, чтобы предоставить полезную информацию о том, как коммит оказался в коде.
git am < somepatch.patch
приводит к «фатальному: пустое имя (для <>) не разрешено». Может кто-нибудь объяснить мне, почему?Author
заголовки в патче, и / или вы этого не сделалиgit config user.{name,email}
.git apply --check
говоритpatch does not apply
иgit apply -3
говоритrepository lacks the necessary blob to fall back on 3-way merge.
В мерзавце, перебазирование коммитов - такой легкий ветерок; но как люди переоценивают свои патчи поверх обновленного кода?источник
Или, если вы пинаете это старой школы:
источник
Сначала вы должны принять к сведению разницу между
git am
иgit apply
Когда вы используете,
git am
вы обычно хотите применить много патчей. Таким образом следует использовать:или просто:
Git автоматически найдет патчи и применит их по порядку ;-)
UPD
Здесь вы можете найти, как генерировать такие патчи
источник
git apply
.. и в--reverse
:-) 👍Если вы хотите применить его как коммит , используйте git am .
источник
Если вы используете IDE JetBrains (например, IntelliJ IDEA, Android Studio, PyCharm), вы можете перетащить файл исправления и поместить его в IDE, после чего появится диалоговое окно, отображающее содержимое исправления. Все, что вам нужно сделать сейчас, это нажать «Применить патч», и коммит будет создан.
источник
Вы можете использовать ниже упомянутый cmd
источник