Git · English usage comparison

Fork vs Clone: English Usage Guide for IT Professionals

"Fork" and "clone" both copy a repository, but at different levels. A fork is a server-side copy on GitHub/GitLab — a new independent repository you own. A clone is a local copy on your machine. You usually fork first, then clone your fork.

Side-by-side comparison

Aspect Fork Clone
Where it lives Server (GitHub/GitLab) — a new remote repo Local machine
Who owns it You — independent copy you control Same repo — you have a local working copy
Use case Contribute to a project you don't own Work on a repo locally
Git command GitHub UI / gh repo fork git clone <url>

Example sentences

Fork

  • "I forked the open-source library to add a feature and then submitted a pull request upstream."
  • "Your fork is a server-side copy — make changes there and open a PR to the original."

Clone

  • "Clone the repo with git clone to get a local working copy on your machine."
  • "After cloning, I set up the .env file and ran npm install."

Exercises: choose the correct English usage

Select the best answer for each question, then check your reasoning.

1. You want to contribute to an open-source project you don't have write access to. First you should ___.

2. "git ___ https://github.com/org/repo.git" downloads the repo to your machine.

3. After forking and cloning, what is "upstream"?

4. Which sentence is correct?

5. A colleague says "just clone it and push your branch." This implies you have ___ access to the original repo.

Frequently asked questions

What is the difference between fork and clone in simple terms?

Fork = copy on the server (GitHub). Clone = copy on your machine. You usually fork a project you don't own, then clone your fork to work locally.

What is "upstream"?

The original repository you forked from. You add it as a remote (git remote add upstream <url>) to pull in new changes from the original project.

What is "origin"?

The default remote name for the repository you cloned from — usually your fork. When you run git push origin main, you're pushing to your fork.