Introduction
When you want to contribute to a project you don't own, you use a fork and pull request workflow. This lets you make changes safely and ask the original project to include your work.
When you want to fix a bug in someone else's project without direct write access.
When you want to add a new feature to an open source project.
When you want to experiment with changes without affecting the original code.
When you want to collaborate on a project but keep your changes separate until reviewed.
When you want to submit your improvements for review before they become part of the main project.