it-swarm.com.ru

Создайте файл патча или diff из репозитория git и примените его к другому другому репозиторию git

Я работаю над проектом на основе 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-репозиторию?

Спасибо заранее.

96
zatamine

Вы можете просто использовать git diff для получения унифицированный diff , подходящий для git apply:

git diff tag1..tag2 > mypatch.patch

Затем вы можете применить полученный патч с помощью:

git apply mypatch.patch
158
Enrico Campidoglio

Чтобы создать патч для нескольких коммитов, вы должны использовать команду format-patch git, например.

git format-patch -k --stdout R1..R2

Это позволит экспортировать ваши коммиты в файл патча в формате почтового ящика.

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

git format-patch -k --stdout HEAD^

Затем в другом хранилище примените исправление с помощью команды am git, например,.

git am -3 -k file.patch

Смотрите: man git-format-patch и git-am .

35
kenorb