Sometimes, you may need to move some code from one repository to another, without preserving the commit history or merging the entire branches. This can be useful when you want to reuse some code snippets, refactor your codebase, or migrate to a new ...
This is a good example of what understanding your tools can give you.
Answer is new or novel approaches to the old problems.
Ability to create a patch from any diff is really really usefull.
If you have wip changes, but don't want to commit it to, then creating a patch is a quite easy way to go.