I frequently need to backport patches from the Linux kernel to older kernel versions (Android Security). My usual workflow for simple patches is: 1. try `git am patch.txt`. 2. if that fails try `git apply -v patch.txt` then add commit message manually. 3. if that fails try `patch -p1 < patch.txt` then add commit message manually. 4. if that fails, manually fix bug based on patch. My question is, why does `patch` seem to do a better job at applying patches than `git am`? It's almost like the `git` tools don't try to fuzz the offsets. Is there a way to tell git to try fuzzing offsets when applying patches? >From the output of `patch` I ran recently (for a patch that `git apply` would not apply): patching file <filename.c> Hunk #1 succeeded at 113 (offset -1 lines). Hunk #2 succeeded at 435 (offset -3 lines). Hunk #3 succeeded at 693 (offset 2 lines). Hunk #4 succeeded at 1535 (offset -41 lines). Hunk #5 succeeded at 1551 (offset -41 lines). Hunk #6 succeeded at 1574 with fuzz 2 (offset -42 lines). Hunk #7 succeeded at 1614 (offset -42 lines). In fact, `git apply -v` errors for hunk #6. I would guess maybe that there's an upper limit on the offset searched? Also, I'm not sure what the `fuzz 2` part means exactly, but it seems like `git apply` chokes when fuzzing is needed to properly apply a patch. http://stackoverflow.com/q/6336440/1027966 -- Thanks, ~Nick Desaulniers