Contributing to open-source is satisfying on many levels. Not only does it validate your skills for recruiters, but it leads to higher quality software that empowers developers to build better products. But submitting your first pull request on GitHub can be intimidating. The goal of this guide is to give you a clear set of steps for contributing any OS project (like fireship.io 🔥).
Step 1: Fork
After you find a repo that looks cool, the first step is to fork it. A fork will create a copy of the repo under your account that you can modify, while maintaining a link to original (that’s called the upstream repo).
Step 2: Clone
Now let’s download the code to your local machine by cloning the fork.
git clone <your-fork-url.git>
You should now have a directory for your project that can be opened with your preferred code editor.
Step 3: Branch
A git repo is just a big tree 🌳. You might have hundreds of people working on the same project and branches ensure that collaboration can happen without complete chaos. Changes on your branch are isolated from the work everybody else is doing.
git checkout -b my-cool-thing
At this point you can start making changes to the code.
Step 4: Commit
When you are happy with the changes, you can stage the changes and commit the code.
git add . git commit -m "🚀 I made this software better!"
Step 5: Pull Request
A “pull request” is identical to a “git merge”, but it is requested from an external source - you. In fact, it is called a “merge request” on other platforms, which I think is a better name, but I digress.
Let’s push your branch to your fork.
git push origin my-cool-thing
When you go back to Github you should automatically see a button labeled Create New Pull Request for my-cool-thing. Go ahead and push that button. Add additional details as needed and it will show up in the list of PRs once submitted.
Submit your First PR?
Fireship.io is an open source project, which means you can submit a change for the very web page you are reading right now. If you are looking for some real-world practice, feel free to add a sentence, a typo fix, an emoji, or any other improvement to the pages on this site (see link in footer to go directly to the source file).