An introduction to GitHub and open source software

If you recall back to the first few posts in the git series, I mentioned there is a reason I am teaching git and version control before we dive into coding. The reason is I want you to be able to collaborate with other software developers as you go through this process, including me.

Git is probably the most commonly used program out there for sharing software on the internet today; and one of biggest tools to host git repositories on the internet is called GitHub.

GitHub is a company that has built a product on-top of git. Using their platform, you can upload your own git repositories to their website, which them makes your code available to the rest of the world, assuming you authorize those permissions. GitHub also gives you the ability to work with other developers through code review and search tools.

Have you heard of the term open source software? Open source software is built by other developers around the world, such as yourself, and is freely available to download, modify, and use in your own projects.

Sounds amazing right, free software? Well as my Dad says, open source software is kind of like getting a “free puppy,” it sounds awesome but it’s still going to take some work. More on this topic in future blog posts but GitHub is a great resource to find open source projects that you can use and contribute improvements.

GitHub is probably the largest host of open source software on the web today. You can go to GitHub’s website and search for software that can help you accomplish the goals for your project. Once you find the code you are interested in, you can download or “clone” the repository to your local computer.

When you clone a repository, you are pulling down all of the code history for that git repository onto your local computer. You can then see any changes that previous developers have made to the code, check out older versions, and even make your own changes.

So how does this relate back to learning coding and why we are teaching this topic first? The reason is that once you have this skill, I can then upload a tutorial project to GitHub and you can follow along. You can also make changes to a GitHub repository and upload or “push” those changes back to the GitHub through what is called a pull request. The owner of that code can then see then changes and incorporate them into the code base.

As these tutorials continue, I will be hosting my own git repositories for the tutorials under my Creative Collisions Group GitHub account. You can find the git repository for tutorial one here.