11
Git Simplified: Working with Remote Repositories
This article is a continuation of the last blog on git
basics. You are highly encouraged to check it out before reading this article.
Often working on a large project, you will be collaborating with large teams to bring the project to life. Git
helps to streamline this process making it easier for developers to collaborate on git
-based platforms such as GitHub.
In this article, we will be going through how to contribute to repositories hosted on GitHub (you can use the same steps to work repositories hosted on other sites like GitLab as well).
If you are contributing to a repository you don't have write access to, you must Fork the repository as the first step.
![](https://res.cloudinary.com/practicaldev/image/fetch/s--8aEkTp5l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nvfl4gad1k10999gtltg.png)
Now you have a personal copy of the repository. Clone the repository using the command:
git clone <clone link>
You can find the clone link in the clone tab of the forked repository
![](https://res.cloudinary.com/practicaldev/image/fetch/s--MOKBCpiT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3mmpzrwleruz2h8a8fr5.png)
NOTE: If you own the repository or have write access you should copy the clone link from the actual repository as making a fork is unnecessary.
If you do not have write access, there is yet another additional step. Go into the cloned repository and add an upstream remote (fancy name for the source repository).
git remote add <upstream remote name> <source repository clone link>
The convention is to use "upstream" for the upstream remote name
Now you have the remote repository set up in your local machine.
![](https://res.cloudinary.com/practicaldev/image/fetch/s--EeDPw5D4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tgq7bus1mxrfn502ofq4.gif)
If you are working with a group of people, you would be required to fetch the changes made by others. To get the updates, the command is:
git pull <remote repository> <branch name>
The repository will be "origin" if you have write access else the upstream remote name you used while adding the upstream remote in the previous step.
After making the required changes, you would like to push the changes to the remote repository for others to access it. To push the changes to the origin repository use:
git push origin <branch name>
Now the origin repository contains the changes you made. If you don't have write access, you will need to create a Pull Request in the source repository where your changes will be reviewed and merged by the owners or collaborators of the repository.
Congratulation on reading the entire article! Don't forget the pat on your back; you deserve this 😉
![](https://res.cloudinary.com/practicaldev/image/fetch/s--O3VaYsTX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/klwbbt8yahwcwb24g5ji.gif)
Now you have advanced git
in your arsenal. It's time for you, my disciple, to barge forward and create and contribute to awesome repositories!
Want to work together? Contact me on Upwork
Want to see what I am working on? Check out my GitHub
I am a freelancer who will start off as a Digital Nomad in mid-2022. Want to catch the journey? Follow me on Instagram
Follow my blogs for weekly new tidbits on Dev
Connect to me on:
11