One of the best things about GitHub is that is not only allows you to collaborate within your team, but it allows anyone else to potentially contribute to your project as well. The culture around GitHub revolves around open source, and community contributions to projects. There are a couple ways you can contribute to projects, including this tutorial!

Submitting Issues

This is the easiest way to contribute to a project. Look at one of your neighbor’s repositories, preferably one you aren’t collaborating on. Click on the Issues. You can add an issue by clicking New issue and filling out the simple form, you should provide a desriptive title then more detail in the comment. It uses markdown so you can format it, and you can also add files and pictures.

Issues tab shown on tab bar.

Issues are used for many things. Within a project team, they are often used to manage tasks, describing what needs to be done, and assigning them to team members.

In addition, you can contribute to any project with issues. Just go to their issues page, and if they allow it, submit an issue. Typically, these will be feature requests, bugs and errors, or even just questions. The good thing about this, is that all this communication is saved so that others can use the information. It is alsoindexed by the search engines.

Submitting an External Pull Request

If you are really feeling helpful or motivated, you can also contribute directly to a project via a pull request. Of course you have already learned about pull requests, but not how to do them when you aren’t a collaborator. There is just one more thing to learn to do this. You need to fork the repository.

Go to this test repository and click on the Fork button. It may ask you where to put it, just choose your own account. Now you have your own version of my play repository (which I forked from someone else!). Makes some edits and commit them. Now you can make a pull request. Click Pull requests, then click the green New pull request button. Set the base repository to olendor:learning_git, and use the develop branch. Set the compare to your repository and the develop branch. Click Create pull request and give a nice title and description. Click Create pull request again and the requst will be posted to the repository.

Screen shot for creating a pull request to an external repo.

At this point, the repository owner or maintainer will review your changes. Any questions will be posted as comments on the pull request issue, and ideally answered by you. Once everything is acceptable, the changes will be merged into the project. Again, all the of this is recorded and typically web searchable too. You also become a contribute to the repository so you get recognition for your work.