Как применить` git diff ' патч без git установлен?



Как мой клиент может применить патч, созданный git diff без git установлен?
Я пытался использовать patch команда, но она всегда запрашивает имя файла для исправления.

616   5  

5 ответов:

git diff > patchfile

и

patch -p1 < patchfile

работа, но как многие люди заметили в комментариях и других ответах патч не понимает добавляет, удаляет и переименовывает. Там нет выбора, но git apply patchfile Если вам нужно обработать файл добавляет, удаляет и переименовывает.


EDIT декабря 2015

последние версии patch command (2.7, выпущен в сентябре 2012 года)поддержка большинства функций формата "diff --git", включая переименования и копии, разрешение изменяется, а символьная ссылка отличается (но еще не бинарные диффы) (объявление о выпуске).

так что при условии, что один использует текущую / последнюю версию patch нет необходимости использовать git чтобы иметь возможность применять его diff в качестве патча.

попробуйте это:

patch -p1 < patchfile

использовать

git apply patchfile

если это возможно.

patch -p1 < patchfile 

имеет потенциальный побочный эффект.

git apply также обрабатывает добавление, удаление и переименование файлов, если они описаны в , который patch не будет. Наконец,git apply это модель" применить все или прервать все", где либо все применяется, либо ничего нет, тогда как патч может частично применять файлы патчей, оставляя ваш рабочий каталог в странном состоянии.

Я использую

patch -p1 --merge < patchfile

таким образом, конфликты могут быть разрешены как обычно.

попробуйте это:

$ git apply file.diff

Comments

    Ничего не найдено.