Say I have uncommitted changes in my working directory. How can I make a patch from those without having to create a commit?
To create a patch with both modified & new files (staged) you can run:
git diff HEAD > file_name.patch