How to Make Your First Open Source Contribution on GitHub in 2025
Why Your First Open Source Contribution Matters
Making your first open source contribution can feel intimidating, but it's one of the most valuable investments in your development career. Whether you're looking to build your portfolio, collaborate with experienced developers, or solve real problems, the first step is always the hardest. The good news? The process is more straightforward than you think, and projects like First Contributions exist specifically to guide you through it.
This guide walks you through the exact workflow you'll use for 99% of open source projects in 2025: forking, cloning, branching, committing, and submitting a pull request.
Prerequisites You'll Need
Before diving in, make sure you have:
- Git installed: Download from git-scm.com (macOS, Windows, or Linux)
- A GitHub account: Free tier is perfectly fine
- A text editor: VS Code, Sublime Text, or any editor you prefer
- Basic Git knowledge: You should understand what
git clone,git add, andgit commitdo
If you're completely new to Git, spend 30 minutes on the official Git tutorial first.
Step 1: Fork the Repository
Forking creates a copy of someone else's repository under your own GitHub account. This is your "sandbox" where you can experiment without affecting the original project.
- Navigate to the repository on GitHub (e.g.,
https://github.com/firstcontributions/first-contributions) - Click the Fork button in the top-right corner
- GitHub creates a copy at
https://github.com/YOUR-USERNAME/first-contributions
This fork is yours to modify. The original project is called the "upstream" repository.
Step 2: Clone Your Fork Locally
Now you need a local copy on your machine to make changes.
# Clone YOUR fork (not the original)
git clone https://github.com/YOUR-USERNAME/first-contributions.git
cd first-contributions
# Add the original repo as "upstream"
git remote add upstream https://github.com/firstcontributions/first-contributions.git
# Verify your remotes
git remote -v
# Output should show:
# origin -> your fork
# upstream -> original repository
This setup is critical. Your origin points to your fork, and upstream points to the original project. You'll use both during the contribution workflow.
Step 3: Create a Feature Branch
Never work on the main or master branch directly. Always create a feature branch for your changes.
# Update main from upstream first
git fetch upstream
git rebase upstream/main
# Create a new branch with a descriptive name
git checkout -b add-new-contributor
# Verify you're on the right branch
git branch
# Output: * add-new-contributor
# main
Use branch names that describe what you're doing: fix-typo-readme, add-javascript-example, update-docker-config.
Step 4: Make Your Changes
This is where you actually edit files. For your first contribution, you might:
- Fix a typo in documentation
- Add your name to a contributors list
- Improve a code comment
- Add an example or clarification
Make focused changes—don't try to fix everything at once. Reviewers prefer small, targeted pull requests.
Step 5: Commit Your Changes
Once you've made edits, it's time to commit them to Git.
# See what changed
git status
# Stage your changes
git add path/to/modified/file.md
# Or add everything (for small PRs)
git add .
# Commit with a descriptive message
git commit -m "Add John Doe to contributors list"
# Or more detail if needed
git commit -m "Fix typo in installation instructions
Fixed: 'instal' -> 'install' in CONTRIBUTING.md
Resolves issue #1234"
Write commits that explain what changed and why. A good commit message helps maintainers understand your work.
Step 6: Push to Your Fork
Now upload your changes to your GitHub fork.
# Push your branch to origin (your fork)
git push origin add-new-contributor
GitHub might respond with a helpful message suggesting you create a pull request. Copy that link—it's faster than creating one manually.
Step 7: Create a Pull Request on GitHub
A pull request (PR) is your formal request to merge your changes into the original project.
- Go to your fork on GitHub
- You'll see a banner suggesting you create a pull request—click it
- Or navigate to the original repo and manually create a PR
Filling Out Your PR Description
Good PR descriptions matter:
## Description
Added my name to the contributors list to complete my first open source contribution.
## Type of Change
- [ ] Bug fix
- [x] Documentation update
- [ ] New feature
- [ ] Breaking change
## Testing
Visually verified the list renders correctly on GitHub.
## Checklist
- [x] I've read the CONTRIBUTING guidelines
- [x] I've made only focused changes
- [x] My commit messages are descriptive
Clear descriptions help maintainers review faster and increase approval chances.
Step 8: Respond to Review Feedback
Maintainers might ask for changes. Don't take it personally—feedback is collaboration, not criticism.
# Make requested changes locally
git add .
git commit -m "Address review: clarify instructions per reviewer suggestion"
# Push again—your PR automatically updates
git push origin add-new-contributor
Common Mistakes to Avoid
| Mistake | Why It's a Problem | Solution |
|---------|-------------------|----------|
| Working on main branch | Hard to separate your work; complicates rebasing | Always create a feature branch |
| Committing to upstream directly | You'll get permission errors | Push only to origin (your fork) |
| Huge PRs with 20+ file changes | Reviewers avoid them; too risky to merge | Keep PRs to 3-5 files max |
| Vague commit messages | Maintainers can't understand your intent | Write "Fix typo in line 42" not "Updates" |
| Forgetting to sync with upstream | Your fork becomes outdated | Run git fetch upstream before starting |
| Not reading CONTRIBUTING.md | You might violate project standards | Check guidelines before submitting |
After Your PR is Merged
Congratulations! Here's what's next:
- Update your local main:
git fetch upstream && git rebase upstream/main - Delete the feature branch:
git branch -d add-new-contributor - Update your fork:
git push origin main - Find another issue: Look for
good-first-issueorhelp-wantedlabels
Tools That Make This Easier in 2025
While the Git workflow above is standard, some tools streamline the process:
- GitHub CLI (
gh): Create PRs from the terminal without opening a browser - GitKraken: Visual Git client that handles branching visually
- VS Code Git integration: Built-in source control without terminal commands
But understanding the manual workflow matters—you'll troubleshoot problems better and feel more confident.
Finding Your First Real Contribution
Once you've practiced, find real projects:
- Search GitHub for
label:good-first-issue - Check goodfirstissue.dev
- Look for projects using your favorite language/framework
- Read the CONTRIBUTING guidelines thoroughly
Final Thoughts
Your first contribution doesn't need to be perfect or groundbreaking. Fixing a typo in documentation counts. Adding clarity to unclear instructions counts. The goal is learning the workflow, understanding how collaboration works, and joining a community of developers.
Every senior developer you admire started exactly where you are. The difference? They made the first pull request. Now you know how too.
Recommended Tools
- GitHubWhere the world builds software
- VercelDeploy web apps at the speed of inspiration
- DigitalOceanSimplicity in the cloud