What Are Git Remotes?
Git remotes are references to remote repositories — copies of your project hosted elsewhere, like on GitHub, GitLab, or Bitbucket.
They let you collaborate, fetch, and push code to shared projects.
Why Use Multiple Remotes?
Adding more than one remote can be useful for:
- Collaborating across teams (e.g., your fork + the original repository)
- Mirroring repositories to other services
- Keeping backups in different locations
How to Add a Remote
Add a new remote called upstream:
git remote add upstream https://github.com/other/repo.git
How to Remove a Remote
Remove the remote named upstream:
git remote remove upstream
How to Rename a Remote
Rename origin to main-origin:
git remote rename origin main-origin
How to List All Remotes
See all remotes and their URLs:
git remote -v
How to Show Remote Details
Get details about a specific remote (e.g., upstream):
git remote show upstream
How to Fetch from a Remote
Download new data from the upstream remote:
git fetch upstream
How to Push to a Remote
Push your local main branch to the upstream remote:
git push upstream main
How to Track a Remote Branch
Create a new local branch new-feature that tracks upstream/new-feature:
git checkout -b new-feature upstream/new-featur
Troubleshooting & Best Practices
- If you see a "remote not found" error, verify the remote name using git remote -v.
- If fetch or push fails, check that you have the correct permissions and access to the remote repository.
- Use git remote show <name> to view detailed information and help diagnose problems.
- Make sure your network connection is working if you can’t reach the remote server.
- Choose clear, meaningful names for your remotes (e.g., origin, upstream, backup) to avoid confusion.
- Regularly remove unused remotes to keep your repository clean and organized.