How to Contribute to a GitHub Project (Even If You're Totally New!)
By Ivana Tilca · August 19, 2025 · 4 min read
A friendly, complete guide to making your first open-source contribution on GitHub — from reading a project's license and CONTRIBUTING file to the full fork, branch, commit, push and pull-request flow, plus the etiquette that keeps your PR from getting closed.
If you're reading this, it's probably because you want to contribute to a project on GitHub — maybe you spotted a broken link, found a bug, or had an idea to improve someone else's code. That's awesome. A lot of people have asked me how to get started, because the first contribution feels intimidating even when the actual steps are simple. So here's a friendly, complete guide that anyone can follow, even if you're brand new to GitHub.
Why contribute at all?
Beyond helping a project you like, contributing is one of the fastest ways to grow as a developer. You read real production code, you learn how experienced maintainers structure things, and you build a public track record that says more than any CV line. And most open-source projects genuinely need the help — a fixed typo or a clear bug report is a real contribution, not a small one.
Before you start: read the room
Once you've found a project you'd like to contribute to, take a moment to read a few key documents. These tell you the rules and expectations, and skipping them is the number-one way first-timers get their PRs closed:
License. If there's no open-source license, then even though the code is public, you're not legally allowed to copy, modify, or reuse it. Always check.
README. Usually the front page of the project. It explains what the project does, how to use it, and often how to contribute.
CONTRIBUTING.md. If it exists, read it carefully. It tells you exactly how this project wants contributions — the steps, the code style, the branch naming, the PR format.
Code of Conduct. The behavioral ground rules for the community. Worth a glance so you know the tone.
Issues. The project's to-do list and bug tracker. This is where you find something to work on — and where you signal what you're taking.
Fixing a bug or adding a feature: the etiquette
A little communication up front saves everyone time:
If an issue already exists: check whether someone's already on it (look at the "Assignees" section). If it's unclaimed, leave a comment saying you'd like to work on it before you start coding.
If it's a brand-new idea: open a new issue describing the bug or feature first, and wait for a maintainer's go-ahead before investing hours. Following the issue template (if there is one) makes this smoother.
This step matters more than beginners expect. Maintainers appreciate a heads-up, and it prevents the heartbreak of two people building the same thing — or of your PR being rejected because the feature wasn't wanted.
What you need on your computer
Before you start coding, make sure you have:
Git installed (from git-scm.com).
A terminal or command prompt you're comfortable opening.
A GitHub account, and ideally the project running locally so you can test your change.
The step-by-step contribution flow
Now the actual mechanics. This is the loop you'll repeat for every contribution:
Fork the repository. On the project's GitHub page, click "Fork." This creates your own copy of the project under your account, so you can make changes freely without touching the original.
Clone your fork. On your forked repo, click "Code" and copy the HTTPS URL, then run:
Create a new branch. Never work directly on main — a dedicated branch keeps your change isolated and easy to review:
Make your changes and commit them. Write a clear commit message that says what you changed and why:
Push your changes to GitHub:
Open a pull request. Go to your repo on GitHub and click "Compare & pull request."
Fill out the details. Write a clear title and description. Explain what you did, why, and how to test it. If there's a PR template, follow it. Then click "Create pull request."
After you open the PR
Opening the PR isn't the finish line — it's the start of a conversation. A maintainer will likely review it and may ask for changes. That's normal and not a rejection; respond, push follow-up commits to the same branch (the PR updates automatically), and stay friendly. Getting feedback on your code from experienced developers is one of the best free lessons in software.
You did it!
Congratulations — you just made your first contribution. Whether it's fixing a typo or adding a feature, every bit helps, and every maintainer remembers the people who showed up to help. Keep going, keep learning, and don't let the first-PR nerves stop you — everyone who contributes today was a beginner once.
Happy coding!