Я работаю над проектом на основе WordPress и хочу исправлять свой проект в каждой новой версии WP. Для этого я хочу создать патч между двумя коммитами или тегами.
Например, в моем репо /www/WP
я делаю это:
$git patch-format com1..com2 --stdout > ~/patchs/mypatch.patch
Или
$git patch-format tag1..tag2 --stdout > ~/patchs/mypatch.patch
/www/WP
git natif WordPress
/www/myproject
Мой git проект на основе WordPress
git apply
Командная строка не работает, я думаю , потому что мы находимся в разных хранилищах.
Могу ли я сгенерировать файл патча без коммита, просто дифференциал и применить его к другому git-репозиторию?
Спасибо заранее.
$git diff -u tag1..tag2 > mypatch.patch
и$git apply --stat > mypatch.patch
ответ,0 files changed
пожалуйста, есть еще какие-нибудь предложения? :)git apply
. Я обновил свой ответ с примером.git diff -p tag1 tag2 > my.patch
который работал хорошо.Only unified diff (-uNr) format is acceptable.
но когда я пытаюсь,git diff -uNr tag1..tag2 > mypatch.patch
я получаю сообщениеusage: git diff [<options>] [<commit> [<commit>]] [--] [<path>...]
git diff ...
+git apply ...
не обрабатывайте удаленные / перемещенные файлы должным образом ... когдаgit format-patch ...
+git am ...
сделайте.Чтобы создать патч для нескольких коммитов, вы должны использовать
format-patch
команду git, напримерЭто экспортирует ваши коммиты в файл патча в формате почтового ящика.
Чтобы сгенерировать патч для последнего коммита, запустите:
Затем в другом репозитории примените патч командой
am
git, напримерСмотрите:
man git-format-patch
аgit-am
.источник
patch -p1
? sourceware.org/glibc/wiki/…В качестве дополнения, чтобы создать патч только для одного конкретного коммита, используйте:
Когда файл патча сгенерирован, убедитесь, что ваш другой репозиторий знает, где он находится, когда вы используете
git am ${patch-name}
Перед добавлением патча, используйте,
git apply --check ${patch-name}
чтобы убедиться, что нет конфликта.источник