Frequently Asked Question
What are 'origin' and 'upstream', and what's the difference between a fork and a clone?
A clone is a complete copy of a repository, made locally with git clone <url>.
The URL you cloned from is automatically saved as a remote named origin, which is
simply Git's default name for "where this came from". origin has no magical
properties; it is just a convention so that git push and git pull have a
sensible default. You can rename it (git remote rename) or have several remotes.
A fork is a GitHub/GitLab/Codeberg concept, not a Git concept: it is a server-side
copy of someone else's repository under your account, which you then clone locally.
In the standard open-source contributor workflow you fork the upstream project, clone
your fork (which becomes origin), and add the original repository as a second remote
called upstream. You push your branches to origin, open pull requests to merge
them back into upstream, and periodically git fetch upstream and merge or rebase
to keep your fork's main up to date. The convention origin = my copy, upstream = the project I am contributing to is followed nearly universally.