2009-12-03 3 views
11

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

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

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

Благодарим за помощь.

ответ

2

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

12

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

git am -3 

Когда патч не применяется чисто, падает обратно на 3-полосные слияниях (git am doc)


qneill упоминает в the comments, что git apply now have a --3way option:

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

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

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

+3

Похоже, что git-apply имеет вариант - 3way теперь с 1.7.11.1 (см. Http://git.661346.n2.nabble.com/PATCH-v4-00-19-quot-git-apply -3way-quot-td7562763.html) – qneill

+0

@qneill хорошая точка. Я отредактировал ответ, чтобы отразить эту новую функцию. – VonC

0

Или вы также можете перебазироваться с основным или происхождения

git rebase origin 

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

Смежные вопросы