A Step by Step Guide to Making Your First GitHub Contribution

Contribute to your first open source project in just 10 minutes with the help of Roshan Jossey.

Next Stop, GitHub. Image via unsplash.com


If you don’t have a GitHub account, or aren’t sure what Git is, read: New Developer? You should’ve learned Git yesterday.

Meet our Teacher

Hopefully you’re here because you’ve signed up for GitHub and you’re ready to make your first open source contribution!

As a new developer, contributing to a project can be scary. I get it — I was there too. It took me way too long to make my first Pull Request. That’s why I want you to meet Roshan Jossey. Roshan created First Contributions — a GitHub repository that walks newbies through every step of the GitHub contribution process, and provides a repository for you to make your first contribution to.

Making Your First Open Source Contribution

Ready to get started? Visit First Contributions to read the guide! In about 10 minutes you’ll be making your first pull request. I’ve also included the step by step guide below — but I do encourage you to read on Roshan’s repo!

If English isn’t you first language, First contributions is available in 13 other languages: Spanish, Dutch, Hindi, Russian, Japanese, Vietnamese, Polish, Korean, German, Simplified Chinese, Traditional Chinese, Greek, العربية.

1. Fork the repository

Fork the First Contributions repo by clicking on the fork button on the top of the page. This will create a copy of this repository in your account.

2. Clone the repository

Now clone the repo to your machine. Click on the clone button and then click the copy to clipboard icon.

Open a terminal and run the following git command:

git clone "url you just copied"

where “url you just copied” (without the quote marks) is the url to the First Contributions repository. See the previous steps to obtain the url.

For example:

git clone https://github.com/this-is-you/first-contributions.git

where this-is-you is your GitHub username. Here you're copying the contents of the first-contributions repository in GitHub to your computer.

3. Create a branch

Change to the repository directory on your computer (if you are not already there):

cd first-contributions

Now create a branch using the git checkout command:

git checkout -b <add-your-name>

For example:

git checkout -b add-alonzo-church

(The name of the branch does not need to have the word add in it, but it’s a reasonable thing to include because the purpose of this branch is to add your name to a list.)

4. Make necessary changes and commit those changes

Now open Contributors.md file in a text editor, add your name to it, and then save the file. If you go to the project directory and execute the command git status, you'll see there are changes. Add those changes to the branch you just created using the git add command:

git add Contributors.md

Now commit those changes using the git commit command:

git commit -m "Add <your-name> to Contributors list"

replacing <your-name> with your name.

5. Push changes to GitHub

Push your changes using the command git push:

git push origin <add-your-name>

replacing <add-your-name> with the name of the branch you created earlier.

6. Submit your changes for review

If you go to your repository on GitHub, you’ll see a Compare & pull request button. Click on that button.

Now submit the pull request.

Soon I’ll be merging all your changes into the master branch of this project. You will get a notification email once the changes have been merged.

The master branch of your fork won’t have the changes. In order to keep your fork synchronized with mine, follow the steps below.

7. Keeping your fork synced with this repository

First, switch to the master branch.

git checkout master

Then add my repo’s url as upstream remote url:

git remote add upstream https://github.com/Roshanjossey/first-contributions

This is a way of telling git that another version of this project exists in the specified url and we’re calling it upstream. Once the changes are merged, fetch the new version of my repository:

git fetch upstream

Here we’re fetching all the changes in my fork (upstream remote). Now, you need to merge the new revision of my repository into your master branch.

git rebase upstream/master

Here you’re applying all the changes you fetched to master branch. If you push the master branch now, your fork will also have the changes:

git push origin master

Notice here you’re pushing to the remote named origin.

At this point I have merged your branch <add-your-name> into my master branch, and you have merged my master branch into your own master branch. Your branch is now no longer needed, so you may delete it:

git branch -d <add-your-name>

and you can delete the version of it in the remote repository, too:

git push origin --delete <add-your-name>

This isn’t necessary, but the name of this branch shows its rather special purpose. Its life can be made correspondingly short.

You did it!

You now have the skills to contribute to open source projects across the web. Go forth and build!

And when you’re ready to really dive into Web Development, Check out the Best Courses for Learning Full Stack Web Development

If this post was helpful, please click the clap 👏button below a few times to show your support! ⬇⬇