layman/terms
Git words

Fork

fork

In shortYour own full copy of someone else's project, where you can make changes freely without affecting theirs.

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?

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.

Good to know

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.

Say it in a meeting

“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 ↗