Skip to main content

Working with Remotes: Collaborating Through Git

Remotes are how you collaborate. Understanding remotes is understanding how Git connects local and remote repositories.

🎯 The Big Picture​

A remote is a reference to another repository. Usually GitHub, GitLab, or another server. Remotes let you share code, collaborate, and backup your work.

Think of it like this: If your local repository is your workspace, remotes are shared workspaces. You push your work, pull others' work.

What Is a Remote?​

A remote is a reference to a repository on another server. The default remote is usually called origin.

# See your remotes
git remote -v

# Output:
# origin https://github.com/user/repo.git (fetch)
# origin https://github.com/user/repo.git (push)

Adding Remotes​

Add Remote​

# Add a remote
git remote add origin https://github.com/user/repo.git

# Add another remote
git remote add upstream https://github.com/original/repo.git

Verify Remotes​

# List all remotes
git remote

# List with URLs
git remote -v

# Show remote details
git remote show origin

Common Remote Operations​

Fetch from Remote​

# Download changes without merging
git fetch origin

# Fetch all remotes
git fetch --all

What it does: Downloads commits, branches, tags from remote. Doesn't merge.

Pull from Remote​

# Download and merge changes
git pull origin main

# Or just (if upstream set)
git pull

What it does: Fetches and merges changes into current branch.

Push to Remote​

# Push to remote
git push origin main

# Or just (if upstream set)
git push

# Push and set upstream
git push -u origin main

What it does: Uploads your commits to remote repository.

Remote Branch Tracking​

Set Upstream Branch​

# Push and set upstream
git push -u origin feature-branch

# Now you can just:
git push
git pull

Change Upstream​

# Change upstream branch
git branch --set-upstream-to=origin/main main

Multiple Remotes​

Fork Workflow​

# Your fork
git remote add origin https://github.com/your-username/repo.git

# Original repository
git remote add upstream https://github.com/original/repo.git

# Fetch from upstream
git fetch upstream

# Merge upstream changes
git merge upstream/main

My Take: Remotes Are Collaboration​

I used to work only locally. I'd think remotes were complicated. I'd avoid them.

Then I learned: Remotes are how you collaborate. They're essential.

Now I use remotes:

  • Push my work (backup and share)
  • Pull others' work (stay updated)
  • Multiple remotes (fork workflow)

Remotes are collaboration. Master them.

Key Takeaways​

  1. Remotes connect local and remote - Essential for collaboration
  2. origin is default - Usually your main remote
  3. fetch vs pull - Fetch downloads, pull downloads and merges
  4. Set upstream - Makes push/pull easier
  5. Multiple remotes - Useful for fork workflows

What's Next?​

Next: Cloning Repositories.


Remember: Remotes are collaboration. They connect your work with others.