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, and git commit do

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.

  1. Navigate to the repository on GitHub (e.g., https://github.com/firstcontributions/first-contributions)
  2. Click the Fork button in the top-right corner
  3. 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.

  1. Go to your fork on GitHub
  2. You'll see a banner suggesting you create a pull request—click it
  3. 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:

  1. Update your local main: git fetch upstream && git rebase upstream/main
  2. Delete the feature branch: git branch -d add-new-contributor
  3. Update your fork: git push origin main
  4. Find another issue: Look for good-first-issue or help-wanted labels

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:

  1. Search GitHub for label:good-first-issue
  2. Check goodfirstissue.dev
  3. Look for projects using your favorite language/framework
  4. 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