Where each copy lives

A developer clones a repository to copy its files and history to their computer. They can edit and commit locally, then push changes to a remote repository if they have access.

A fork is a separate repository on a hosting service, often in the contributor’s own account. Someone without write access to a project can fork it, clone the fork to work locally, then propose changes to the original with a pull request.

When to use each

Team members often clone the shared repository and work on branches. Outside contributors often fork first. Forking does not copy code to your computer, and cloning does not grant permission to push changes to the original repository.