Remote Repositories and Hosting Platforms

Remote Repositories and Hosting Platforms

Up until now, you've been working entirely on your own computer. To collaborate with others, you need a Remote Repository—a copy of your project hosted on a server that acts as a central hub for your team.


1. What is a "Remote"?

In Git, a remote is a URL pointing to another copy of the project. While Git is "distributed" (everyone has a full copy), teams usually designate one remote as the "source of truth."

Remote (origin)Alice (Local)Bob (Local)Charlie (Local)


2. Protocol Options: HTTPS vs. SSH

When you connect to a remote, you must choose how your computer talks to the server.

HTTPS (Hypertext Transfer Protocol Secure)

  • Setup: Easy. Works out of the box.
  • Auth: Requires a username and a Personal Access Token (PAT). You can no longer use your standard password for Git operations on platforms like GitHub.
  • Best for: Beginners or environments with strict firewalls.

SSH (Secure Shell)

  • Setup: Requires generating an SSH key pair (ssh-keygen) and uploading your public key to the hosting platform.
  • Auth: Uses your private key on your machine. No passwords or tokens needed once set up.
  • Best for: Professional developers who want speed and security.

3. Managing Remotes

You can link your local repository to as many remotes as you like.

  • Add a remote: git remote add <name> <url>
  • Check existing remotes: git remote -v
  • Inspect a remote: git remote show <name> (Gives detailed info about branches and tracking status).
  • Rename a remote: git remote rename <old> <new> (e.g., git remote rename origin hub).
  • Remove a remote: git remote remove <name>.

4. Cloning vs. Initializing

There are two ways to start working with a remote repository:

Method A: Start from Scratch (Initializing)

  1. Create a repository on GitHub.
  2. Run git init in your local folder.
  3. git remote add origin <url>
  4. git push -u origin main

Method B: Copy an Existing Project (Cloning)

The git clone command is the most common way to get started. It creates a new directory, initializes Git, adds the origin remote, and downloads all the data in one step.

git clone https://github.com/user/project.git

5. Summary Table: Remote Concepts

TermMeaning
originThe default name Git gives to the server you cloned from.
upstreamA common name for the "original" repository when you have forked a project.
PATPersonal Access Token—the "password" used for HTTPS connections.
SSH KeyA cryptographic file on your machine that identifies you to the server.

In the next chapter, we'll dive into the commands used to actually move code back and forth: push, fetch, and pull.