# Remotes

A repo can be **local** (on your own computer) or **remote** (on a server). For example, a repo on your D drive work directory is local, while a repo on your GitHub is a remote.&#x20;

Remotes are mainly used for **collaborating** with other contributors. This can be in a team environment where changes from colleagues are constantly exchanged. Or it can be for open source projects, where anyone from the public can be a contributor.

Locals can get data (**fetch** or **pull**) from or send data (**push**) to the remotes. Data can be transferred using SSH, HTTPS or the GIT protocol.

> Pull and fetch are similar operations, but quite confusing for beginners. More on that later. So far, just know they are used to downlink data from remotes.

**Branches** are the mian players when working with remotes. E.g. when we pull or push, data are sent and received by specific branches.
