Reputation: 163205
Can you please tell me how can I resolve the 'patch does not apply' error when I try to 'git apply-patch'?
$ git apply 0001-my.patch
error: patch failed:test.xml:114
error: text.xml: patch does not apply
I do have 'test.xml' in my local directory. And when I do 'git status', it shows I don't have local changes.
Thank you for any help.
Upvotes: 11
Views: 9699
Reputation: 1326892
You can try a:
git am -3
When the patch does not apply cleanly, fall back on 3-way merge (
git am
doc)
qneill mentions in the comments that git apply
now have a --3way
option:
you can now apply your patches without having to reduce context.
As it will leave the conflicted halves in the index and let you manually resolve conflicts in the working tree, "--3way
" implies "--index
", and cannot be used with "--cached
" or "--reject
".
You can see it in the git1.7.12 release note (August 2012, a bit less than 3 years after the original question)
"
git apply
" learned to wiggle the base version and perform three-way merge when a patch does not exactly apply to the version you have.
Upvotes: 12
Reputation: 141
Or you may also want to rebase with main or origin
git rebase origin
Just to make sure you are on the same track with latest changes before you will start applying patches from other guys.
Upvotes: 0
Reputation: 143229
Well, the patch has information about what should be change to what. If the first what doesn't match file contents, the patch doesn't apply.
Upvotes: 2