Skip to content

This guide and website are in beta! Help us make them awesome with your feedback!

Say Hi to Git (and Github)

Git and Github are indispensable tools in every programmer’s catalog, regardless of where they are in their coding journey. They give you the ability to edit code with confidence, compare multiple versions of it, and share your work with others. Here, we’ll give you an overview of what these tools are and what each of them does.

By the end of this article you’ll know:

Version Control is the practice of keeping track of and managing different versions of a file, such as source code for a program you’re working on. Version Control keeps track of changes made to a file, and allows you to compare multiple versions of the same code together. If you make a mistake or a change you are not happy with, you can restore your file to an older version of itself.

Version Control also allows multiple people to work on the same project in parallel, without the resulting code conflicting with itself. You can work on the same program from different machines, evaluate and integrate changes made by other people, and keep track of what each team member does. It is, overall, a fantastic tool for any programmer to have, whether they are working solo or in collaboration with others.

To help with Version control, we use what is known as a VCS or Version Control System. The most well-known and supported VCS is called Git. Git is a software utility which works entirely in your own computer, and allows you to:

  • Save checkpoints of your code.

  • Look at and jump across your history of changes.

  • Merge changes together, even when they conflict.

  • Test out changes before “committing” to them.

  • Make and keep track of “branches” — multiple versions of the same program, with different features each.

While Git can work completely offline, many developers pair Git with a Git-based cloud platform to back up their repositories in a central place that’s accessible everywhere. GitHub is the most popular and widely used of them; an online platform which allows people to collaborate on the same code and track progress very easily.

Projects are stored in GitHub in what is called a “repository” — a specialized storage system for code. Code stored in an online repository can be retrieved whenever and wherever you are, so long as you have an internet connection. GitHub also provides other nifty features: a very nice UI, which allows you to easily check your project’s history and keep track of changes and versions; an issue tracker to keep track of bugs and plan future features; and a very thorough statistics tab.

However, GitHub’s flagship feature is a thing known as Pull Requests: when another person wants to make a modification to your code, they can duplicate your codebase and work independently from you. This duplicated codebase is called a “fork”. Pull Requests allow anyone who has “forked” a repository to submit changes for the original owner to review and, if they wish, integrate them with their own codebase. This makes GitHub a fantastic place to connect with other coders, learn together as you work, and help each other along the way.

We explored Version Control Systems and some of the many things that can be done with them!

There is still a lot more that can be said about them, so if you are interested, pick up our zine issues on Git and GitHub and follow our online Installation Guides to get yourself started.