Before diving deep in lets learn about some terminology that we are going to use.
What is Forking ?
A fork is a copy of a project folder (repository) into your Github account or onto your desktop if you use Github on your Desktop. This allows you to freely experiment with changes without affecting the original project.
What is Pull Request?
Pull requests let you tell others about changes you’ve pushed to a branch in a repository on GitHub
For instance, a user Sam forks a repository of Sachin and makes changes to that repository. Now Sam can make a pull request to Sachin but it’s up to Sachin to accept or decline it. It’s like “Would you please, Sachin pull my changes?”.
Let’s make our first pull request!
If you’re not much familiar with Git & GitHub, please review this article
1. Fork the repository
Fork the repository by clicking the fork button on the top of the page. This will create an instance of that entire repository in your account.
2. Clone the repository
Once the repository is in your account, now clone it to your machine to work with it locally.
To clone, click on the clone button and copy the link.
$ git clone [HTTPS ADDRESS]
Now, we have set up a copy of the master branch from the main online project repository.
We need to go to that cloned directory by running this command:
$ cd [NAME OF REPOSITORY]
3. Create a branch
Now we need to create the new branch as we cannot directly commit to the main branch.Branch name should be short and it should reflect the work we’re doing.
Now create a branch using the
git checkout command:
$ git checkout -b [BRANCH-NAME]
Now you can see that the new branch is created and we have also change our branch from master to myContribution.
4. Make changes and commit them
Make essential changes to the project and save it.
git status , you’ll see changes.
Add those changes to the branch you just created using the
git add command:
$ git add .
You can also just specify the file name which you are changing using command
git add [FILE NAME]
Now commit those changes using the
git commit command:
$ git commit -m "adding my name in .md file"
5. Push changes to GitHub
In order to push the changes to GitHub we need to identify the remote’s name.
$ git remote
For this repository the remote’s name is “origin”.
The remote name is a short-hand label for a remote repository. “origin” is the conventional default name for the first remote and is usually where you push to when you don’t specify a remote for git. You can set up more than one remote for your local repo and you use the remote name when pushing to them.
$ git push origin [Branch Name]
6. Create pull request
Go to your repository on GitHub and you’ll see a button “Compare & pull request” and click it.
Please provide necessary details on what you’ve done(You can reference issues using “#”). Now submit the pull request.
If your pull request is accepted you’ll receive an email.
7. Sync your forked master branch
While using GitHub and contributing to various apps, it is important we keep our fork repository updated with the master repository as there might be various changes done by various contributors and if we have that updated, it will help us in our future issues and contributions and also use the updated version of the project. Here is the official definition of syncing fork with master.
Getting the latest changes in the master repository after you have forked it without losing the current changes you have made in your local repository.
Step 1: Run the following command in your terminal to see the current configured remote repository in your fork
Step 2: Run the following command
$ git remote add upstream https://github.com/(original_owner_or_organisation/(original_repository).git
This particular command will help you add the upstream which means the link to master repository from which you have forked.
Step 3 : Check your remote now by running the following command again
$ git remote -v
It will show something like this, which indicates your own local repository and also your master repository.
Step 4 : Fetch the changes from the upstream with following command
$ git fetch upstream
Now, that you’ve set the upstream, it’s time to fetch the changes from the upstream(master repository) that have been made since the time you forked. But make sure, you are in your master branch or any main branch before you run this command.
Step 5 : Merge the fetched changes
$ git merge upstream/master
Now it’s all left to merge the changes that you’ve have fetched from your master to the local repository.
If you are familiar with git then you might be knowing about
git pull you can read more about it here.
From the Git documentation for git pull
In its default mode,
git pullis shorthand for
git fetchfollowed by
git merge FETCH_HEAD.
8. Delete the unnecessary branch
Once your purpose is accomplished, you can delete the branch.
$ git branch -d [Branch Name]
If you have made it this far then ,Congratulation you have learned How to make your first pull request but you might be thinking How can I search for the repository to make the pull request don’t worry I got you covered.
Here are some of the website and repository to look for some
good first issue .
- GitHub Explore
- First Timers Only
- Up for Grabs
- First Contributions
- awesome for beginner [highly recommended]
Open Source is for everyone it’s not that if you are not good at coding you can’t contribute to the project you can still contribute by making changes to docs and README.md files. If you are new to some project you can ask them what the issue is about and what are the changes required they will definitely help you.
Code for Cause [If you are interested in Open Source and want to learn more about it do check out “Code for Cause” youtube channel]
Open Source Guides
Open source software is made by people just like you. Learn how to launch and grow your project. Want to make a…
Have any queries you can contact me on
Will meet in next blog until then stay curious.✌️