The patch utility does not understand git formatted patches. For text files, there is no problem, but binary files use the git format. The -a param makes git diff put binary files into the patch in raw format that can be understood by the patch tool.