Love someone's project but want to change it your way? Make your own copy. That's a fork.
Your gran has a famous curry recipe in the family cookbook. You copy it into your own notebook, then add more chilli and swap the potatoes for chickpeas. Your version is yours to change. The original in the cookbook stays exactly as it was.
In Git, a fork is your own full copy of someone else’s project, including all its history, that you can change freely.
Fork or branch?
- a branch is a side path inside the same project, shared by the whole team
- a fork is a whole new copy of the project, owned by you
People usually fork projects they can’t change directly, like an open-source project run by strangers.
Giving back
If your changes would help the original, you can send them back with a pull request. The original’s owners decide whether to take them. A lot of open-source software improves exactly this way.
What it isn’t
It isn’t stealing. Public projects on GitHub are usually shared on purpose, with a licence saying how you may reuse them.
Where the comparison breaks down
Your recipe copy never changes unless you change it. A fork can be kept in step: you can pull in new changes from the original whenever you like.
How the words fit together
A fork is your own copy on GitHub. You work on branches inside it and can send changes back with a pull request.
If your version turns out better, you can offer your changes back to the original project with a pull request. That's how a lot of open-source software gets improved.

When you'll hear it
“Fork the repo.” Make your own copy of the project on GitHub so you can change it.
“It's a fork of another project.” This project started as a copy of another one and went its own way.
“Send a PR from your fork.” Offer the changes from your copy back to the original project.
“Should we build on this open-source project with a fork, or start our own?”

Try it yourselfReady to use it? The exact commands are on my other site, devcmds: Fork a project and clone it ↗

