Ошибка при запуске 'git apply'

Не могли бы вы рассказать мне, как я могу устранить ошибку "patch not apply", когда я пытаюсь 'git apply-patch'?

$ git apply 0001-my.patch
error: patch failed:test.xml:114
error: text.xml: patch does not apply

У меня есть "test.xml" в моем локальном каталоге. И когда я делаю "git status", он показывает, что у меня нет локальных изменений.

Спасибо за любую помощь.

Ответ 1

Вы можете попробовать:

git am -3

Если патч не применяется чисто, откиньтесь на трехстороннее слияние (git am doc)


qneill упоминает в комментарии, что git apply теперь имеет параметр --3way:

теперь вы можете применять свои исправления, не сокращая контекст.
Поскольку он оставит конфликтующие половины в индексе и позволит вам вручную разрешать конфликты в рабочем дереве, "--3way" подразумевает "--index" и не может использоваться с "--cached" или "--reject".

Вы можете увидеть его в заметке о выпуске git1.7.12 (август 2012 года, чуть менее 3 лет после исходного вопроса)

"git apply" научился подталкивать базовую версию и выполнять трехстороннее слияние, когда патч не относится точно к вашей версии.

Ответ 2

Ну, патч содержит информацию о том, что должно быть изменено на что. Если первое, что не соответствует содержимому файла, патч не применяется.

Ответ 3

Или вы также можете захотеть переустановить с помощью основного или исходного кода

git rebase origin

Просто чтобы убедиться, что вы находитесь на одной дорожке с последними изменениями, прежде чем вы начнете применять исправления от других парней.