Hey friend! ๐
Today marks your start in the Open Source World!! ๐๐ฏโโ๏ธ
In the next 10 min, you will contribute to your first Open Source projects - how crazyyy is that. ๐
Now when contributing, we want to:
1. fork -> 2. clone -> 3. edit -> 4. push -> 5. pull
Now, what does that mean in normal language? ๐
- Fork โก๏ธ Make a copy of a project on your GitHub account
- Clone โก๏ธ Download the project from GitHub to your computer
- Edit โก๏ธ That's self-explanatory - here you will add your name to our contributors file
- Push โก๏ธ Update and send the changes to your online GitHub repository
- Pull โก๏ธ Send your contribution to the original GitHub repository
That may sound a bit intimidating, but don't worry I got you! ๐ฏโโ๏ธ
Also if you are wondering:
YES, this is exactly how all the devs in the world contribute to software projects online!
So in this project, you will have a great understanding of the mechanics behind GitHub so that you are ready for your future contributions!
Now, are you reeeeeady?? We got this โ๏ธ๐ฏโโ๏ธ
Requirement: If not already done, download Git here.
For the 95% of us that prefer videos instead of text, check this video to assist you in contributing! ๐
1. Fork the project
First, head over here and click on โญ๏ธ star
in the right corner (to show some love ๐ซถ๐โโ๏ธ) and then click on the fork
button.
Fork means you will create a copy of this repository in your own GitHub account. ๐ช
Now that you have the copy on your own account, let's download the entire project on your local computer!
2. Clone the repository
1๏ธโฃ You should now have landed on your forked repo page, here you will see a <>
button marked in green, click on it.
2๏ธโฃ Click on the button looking like a double square
(highlighted in red below) to copy the URL.
3๏ธโฃ Open your terminal.
4๏ธโฃ Use your terminal to move to a folder where you want to put the cloned project (using more technical language, this is called moving to a directory of your choice). ๐
5๏ธโฃ Type git clone
and then paste the URL copied earlier.
You normally should have written
git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY
6๏ธโฃ Press Enter.
3. Open the File and Make changes
The entire project is now on your computer!
1๏ธโฃ On your terminal, make sure that you are in the project (or directory ๐) by running: cd Your-First-Contribution
.
2๏ธโฃ Open the QuiraContributors.md
file in a text editor or on your favourite IDE (aka VS Code, Atom, PyCharm, Sublime etc).
Here you add your name (it can be a nickname if you want to!).
3๏ธโฃ Copy the below code and adjust it accordingly:
<td align="center">
<a href="https://github.com/YOURUSERNAME">
<sub><b>YOUR NAME</b></sub>
<br />
</a>
</td>
*Note: We limit 8 profiles per row, so if the current row already has the maximum amount, create a new <tr> YOUR CODE SNIPPET HERE </tr>
.
4๏ธโฃ When done, save the file!
4. Upload your changes to your online GitHub repo
OK, we got some changes done, now we need to upload them to your GitHub account.
In summary here we want to:
- โ add all the changes onto git
- ๐ฌ add a commit message (which helps tell other devs what you have changed) and
- ๐พ push the changes to your online GitHub repository.
1๏ธโฃ So in your terminal, run the following command: git add .
2๏ธโฃ After that, run: git commit -m "description of what you changed/added"
3๏ธโฃ Finally, run: git push
At this point, if this is your first time, GitHub will ask you to authenticate yourself with your username and password. ๐
4๏ธโฃ Write out your GitHub username first and press Enter.
5๏ธโฃ For your password, ever since Aug 2021, it is a personal token you need to write (and not your actual password!). Don't worry though, let's get your token together by following the below: โบ
On your GitHub account, hover to the top right of the page and click on your profile image
Now click on
profile setting
Find and Click on
developer setting
Click on
Personal Access Tokens (Token Classic)
Click on
Generate new token (classic)
Give a name e.g "authentification token"
At this point, you should be here โฌ๏ธ:
6๏ธโฃ Select the scopes you want (for ease you can select all of them).
7๏ธโฃ Click on Generate token
8๏ธโฃ Your token will be displayed and you will be able to paste it into your terminal after which your push should have been successful! ๐
5. Time to contribute! Send your changes from your online repo to the original repo
We are so close to the end now! ๐ค
All we need to do is now send over our changes to the original repository to make our contribution.
In "GitHub language", this is called "pulling a request" because you essentially "pull" your changes into the original repository that you forked.
1๏ธโฃ Go now to your GitHub repo page online.
2๏ธโฃ Click on the Contribute
button.
3๏ธโฃ Click on Open pull request
4๏ธโฃ You will then title your pull request with your "Name Surname" and you can leave the comment section blank.
5๏ธโฃ Click Create pull request
and that's it you have made your first contribution!! ๐๐ฏโโ๏ธ
Congraaaaaaaats! โญ๏ธ
You may be thinking, I thought I would be taken to the repository straight away but I'm left with the status of the pull request?
YES, this is because we now need to accept your pull request (it is also called merging a pull request).
All in all, contributions happen in this way where the maintainer(s) of the original repository (aka the people that are in charge of the repo) check your contributions and either end up accepting them or giving you feedback on what changes they need from you.
So sit back and relax as you have just done everything you needed! โ๏ธ๐งโโ๏ธ๐
We know it is always super tough the first time and it's really cool you got to this point - so proud of you! ๐ฏโโ๏ธ๐
If you are ready to start contributing to other projects, we have compiled a list of projects with easy issues you can get started on. Check out the list of projects on quira.sh and here's a short playlist in case you are blocked. ๐
If you haven't yet, you could join our discord server if you need any help or have any questions. ๐ซถ
Top comments (22)
I am super excited to delve into this. It has always been intimidating (to me at least) to find a project and contribute. The thoughts of rejection and imposter syndrome convince me not to give it a try. This article made me feel more confident, especially about handling Git! Thank you so much!
Hey Jasmine!! Oh wow this is so cool to hear - really glad this has been useful. I would love to know your thoughts on what would be the best type of articles/resources that you would find helpful. Let me know ๐ฆพ
I personally love to read articles based on best practices for gaming programming. I haven't done much of a search, but I really would love to find more information about different types of open source game projects!
This was incredibly useful! Made my 1st contribution to the open source thanks to this tutorial ๐คฉ.
yayyy!
Easy to forget how complex it is to do this for the first time, I'm just like "submit a PR!". It's a really useful guide ๐
it is indeed - thanks for the comment! :)
Nice !!! Thanks
My pleasure! Let me know what other type of article you would find helpful so I can write it up :)
Nice article
Happy to hear you enjoyed it. Any type of article around open source or anything you would like to ready next?
open source projects that one can start contributing to.
Happy you found it useful! ๐ฆพ
just contributed it was awesome
that's amazing!!! How does it feel to be an open source coder now? ;)
Is there any important open source project, for people with advanced knowledge in html, css/sass, javascript, php or C#?
Hey Marcos! That's a good question. There are indeed important open source projects for people like yourself. To find them, I recommend you use Quira.sh (link at the bottom of the article) and filter by the language and topic of your choice. You should find many projects surrounding these languages. You can read their projects and issues to decide if you want to jump in and contribute. Hope that helps.
useful blog !!
Thanks a lot Lucky! Here to please ๐ฏโโ๏ธ Any other type of blogs in the space of Open Source that you think would be useful to you?
Thanks, now I know how to contribute to github
My pleasure Lokman!! Is there anything in open source you would like to learn about next? Let me know!